
【FuelPHP】FuelPHPでAWS SDK for PHPを試してみる。
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちはphpビギナーの清田です。今回はPHPのフレームワークで注目されているFuelPHPでAWS SDK for PHPを試してみたいと思います。
アジェンダ
- 実行環境
 - FuelPHPのインストール
 - AWS SDK for PHPをインストール
 - 動作確認
 
実行環境
- Win 7
 - PHP 5.3.3+
 - FuelPHP 1.6
 
環境変数へPHPのパス指定をしておいていください。
FuelPHPのインストール
FuelPHPのインストールは2パターンあり、コマンドラインからのインストールと、ファイルをダウンロードしていインストールがあります。
今回は弊社須藤の記事を参考にインストールします。
Gitコマンドでインストール
git clone git://github.com/fuel/fuel.git <src_dir> cd <src_dir> rm -rf .git .gitmodules *.md docs fuel/core fuel/packages git init
今回はサブモジュールは以下の二つをインストールしてみます。
git submodule add git://github.com/fuel/core.git fuel/core git submodule add git://github.com/fuel/oil.git fuel/packages/oil
composerのアップデート
php composer.phar update
インストール用のoilコマンドを実行。
php oil refine install
参考記事
ブラウザから確認
弊社大村の記事を参考にアパッチの設定を行いました。
ブラウザに設定したURLを入力し、以下画面が表示されますとインストール完了です。

AWS SDK for PHPをインストール
composerを利用してインストールしてみたいと思います。
composer.jsonを編集
以下のcomposer.jsonファイルを編集します。

requireプロパティに["aws/aws-sdk-php": "2.*"]を追記します。
{   
    "require": {
        "aws/aws-sdk-php": "2.*"
    }
}
composerをアップデート
コマンドラインへ戻り、以下コマンドを実行します。
php composer.phar update

正常にインストールされると、vendorフォルダ以下にaws-sdk-phpがインストールされています。
bootstrap.phpの編集

bootstrap.phpにAWSのnamespaceの追加記述します。
Autoloader::add_namespace('Aws', APPPATH.'vendor/aws/aws-sdk-php/src/Aws', true);
動作確認
動作確認用にコントローラーにs3.phpを作成し、S3のバケットを取得してみます。
/app/classes/controller/s3.php
<?php
use Aws\S3\S3Client;
class Controller_S3 extends Controller
{
	public function action_index()
	{
		$config = array(
		  //accessKeyを記述
		  'key'    => 'Your Access Key',
		  //secretAccessKeyを記述
		  'secret' => 'Your Secret Key'
		);
		$s3 = S3Client::factory($config);
		$buckets= $s3->listBuckets();
		foreach ($buckets as $bucket)
		{
		  var_dump($bucket);
		}
	}
}
取得できるか確認
とりあえずブラウザ側からhttp://XXXXXXXXXX/s3/にアクセスしてみると
以下の配列内にS3のバケット情報が表示されています。
array(XX) {
  ["ID"]=>
  string(64) "XXXXXXX"
  ["DisplayName"]=>
  string(14) "XXXXXXX"
}
array(XX) {
  [0]=>
  array(2) {
    ["Name"]=>
    string(14) "XXXXXXX"
    ["CreationDate"]=>
    string(24) "XXXXXXX"
  }
  
  //以下割愛します
  
}
string(16) "XXXXXXX"
急ぎ足でFuelPHPでAWS SDK for PHPを使用して、S3のバケットを取得まで試してみました。









