【FuelPHP】FuelPHPでAWS SDK for PHPを試してみる。

2013.08.20

この記事は公開されてから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

参考記事

ブラウザから確認

弊社大村の記事を参考にアパッチの設定を行いました。

【実践FuelPHP】XAMPPにFuelPHPを導入する

ブラウザに設定したURLを入力し、以下画面が表示されますとインストール完了です。

img-001

AWS SDK for PHPをインストール

composerを利用してインストールしてみたいと思います。

composer.jsonを編集

以下のcomposer.jsonファイルを編集します。

img-fuel-aws-002

requireプロパティに["aws/aws-sdk-php": "2.*"]を追記します。

{   
    "require": {
        "aws/aws-sdk-php": "2.*"
    }
}

composerをアップデート

コマンドラインへ戻り、以下コマンドを実行します。

php composer.phar update

img-fuel-aws-003

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

bootstrap.phpの編集

img-fuel-aws-004

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のバケットを取得まで試してみました。

参考にさせていただいたサイト