aws sdk for phpをインストールするならcomposerでしょ!

54
Composer @slywalker (Yasuo Harada) のインストールなら AWS SDK for PHP でしょ!

Upload: yasuo-harada

Post on 26-May-2015

6.200 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: AWS SDK for PHPをインストールするならComposerでしょ!

Composer@slywalker (Yasuo Harada)

のインストールならAWS SDK for PHP

でしょ!

Page 2: AWS SDK for PHPをインストールするならComposerでしょ!
Page 3: AWS SDK for PHPをインストールするならComposerでしょ!

about me

Page 4: AWS SDK for PHPをインストールするならComposerでしょ!

大阪でAWS+PHP(CakePHP)+MySQLを主に使って開発を行っています。

Page 5: AWS SDK for PHPをインストールするならComposerでしょ!

@slywalker

Page 6: AWS SDK for PHPをインストールするならComposerでしょ!

@slywalkerfollow me!

Page 7: AWS SDK for PHPをインストールするならComposerでしょ!

github.com/slywalker

Page 8: AWS SDK for PHPをインストールするならComposerでしょ!

github.com/slywalkerfork me!

Page 9: AWS SDK for PHPをインストールするならComposerでしょ!

PHPエンジニア養成読本

Page 10: AWS SDK for PHPをインストールするならComposerでしょ!

PHPエンジニア養成読本buy now!

Page 11: AWS SDK for PHPをインストールするならComposerでしょ!

Composerを使ったほうがいいのか?

なぜ?

Page 12: AWS SDK for PHPをインストールするならComposerでしょ!

AWS SDK for PHP 2 を使用して、AWS の使用を迅速に開始します。この SDK は、Amazon S3、Amazon Glacier、DynamoDB、CloudFront など、多くの AWS サービス向けの Ruby クラスを提供するため、コーディングの複雑さが軽減されます。ダウンロード可能な 1 つのパッケージに、AWS PHP ライブラリとドキュメントが含まれます。

AWS SDK for PHPhttp://aws.amazon.com/jp/sdkforphp/ より引用(原文まま) 2013年9月27日現在

Page 13: AWS SDK for PHPをインストールするならComposerでしょ!

インストール方法はいくつかある

AWS SDK for PHP

Page 14: AWS SDK for PHPをインストールするならComposerでしょ!

Zip or Phar

Pear

Composer & Packagist

Page 15: AWS SDK for PHPをインストールするならComposerでしょ!

Zip or Phar

バージョン管理は目視、手動

バグフィックスなど追いかける手間

呼び出しは、ファイルをrequire

Page 16: AWS SDK for PHPをインストールするならComposerでしょ!

Zip or Phar

救い?CUIでの操作が不要

どこでも好きなところに設置OK

だがそれが不幸の原因に!?

Page 17: AWS SDK for PHPをインストールするならComposerでしょ!

Zip or Phar

なにもかもが手動

Page 18: AWS SDK for PHPをインストールするならComposerでしょ!

Zip or Phar

安宅船

なにもかもが手動

Page 19: AWS SDK for PHPをインストールするならComposerでしょ!

Zip or Phar

安宅船

なにもかもが手動

手漕ぎ!!

Page 20: AWS SDK for PHPをインストールするならComposerでしょ!

バージョン管理OK

でも、依存性解消までは無理

呼び出しは、pearのディレクトリをinclude_pathに設定

いままで本当にありがとう!

Pear

Page 21: AWS SDK for PHPをインストールするならComposerでしょ!

1サーバ=1バージョン

ひとつの環境上で複数アプリを違ったバージョンで運用できない

複数運用しようとZipへ逆戻り…

いままで本当にありがとう!

Pear

Page 22: AWS SDK for PHPをインストールするならComposerでしょ!

華々しい戦績も…

Pear

Page 23: AWS SDK for PHPをインストールするならComposerでしょ!

重巡愛宕

華々しい戦績も…

Pear

Page 24: AWS SDK for PHPをインストールするならComposerでしょ!

重巡愛宕

華々しい戦績も…

轟沈!!

Pear

Page 25: AWS SDK for PHPをインストールするならComposerでしょ!

バージョン管理OK

アプリごとに別バージョンOK

依存性解消OK

呼び出しは、autoloader

Composer & Packagist

Page 26: AWS SDK for PHPをインストールするならComposerでしょ!

Composer & Packagist

最新鋭

Page 27: AWS SDK for PHPをインストールするならComposerでしょ!

護衛艦あたご

Composer & Packagist

最新鋭

Page 28: AWS SDK for PHPをインストールするならComposerでしょ!

操作 バージョン管理 インストール先 呼び出し

GUI なし アプリ require

CUI あり(依存性解消なし)

環境 include_path

CUI あり(依存性解消あり)

アプリ autoloader

Page 29: AWS SDK for PHPをインストールするならComposerでしょ!

One more thing...

Page 30: AWS SDK for PHPをインストールするならComposerでしょ!

どうしてこうなった…

git clone or git submodule

Page 31: AWS SDK for PHPをインストールするならComposerでしょ!

どうしてこうなった…

git clone or git submodule

Page 32: AWS SDK for PHPをインストールするならComposerでしょ!

どうしてこうなった…

git clone or git submodule

何これ!!

Page 33: AWS SDK for PHPをインストールするならComposerでしょ!

Composer依存性解消のしくみ

実録

Page 34: AWS SDK for PHPをインストールするならComposerでしょ!

$ vim composer.json

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

$ php composer.phar install

Page 35: AWS SDK for PHPをインストールするならComposerでしょ!

Loading composer repositories with package informationInstalling dependencies (including require-dev) - Installing symfony/event-dispatcher (v2.3.5) Downloading: 100%

- Installing guzzle/guzzle (v3.7.3) Loading from cache

- Installing aws/aws-sdk-php (2.4.6) Loading from cache

symfony/event-dispatcher suggests installing symfony/dependency-injection ()symfony/event-dispatcher suggests installing symfony/http-kernel ()aws/aws-sdk-php suggests installing doctrine/cache (Adds support for caching of credentials and responses)aws/aws-sdk-php suggests installing monolog/monolog (Adds support for logging HTTP requests and responses)aws/aws-sdk-php suggests installing symfony/yaml (Eases the ability to write manifests for creating jobs in AWS Import/Export)Writing lock fileGenerating autoload files

Page 36: AWS SDK for PHPをインストールするならComposerでしょ!

Loading composer repositories with package informationInstalling dependencies (including require-dev) - Installing symfony/event-dispatcher (v2.3.5) Downloading: 100%

- Installing guzzle/guzzle (v3.7.3) Loading from cache

- Installing aws/aws-sdk-php (2.4.6) Loading from cache

symfony/event-dispatcher suggests installing symfony/dependency-injection ()symfony/event-dispatcher suggests installing symfony/http-kernel ()aws/aws-sdk-php suggests installing doctrine/cache (Adds support for caching of credentials and responses)aws/aws-sdk-php suggests installing monolog/monolog (Adds support for logging HTTP requests and responses)aws/aws-sdk-php suggests installing symfony/yaml (Eases the ability to write manifests for creating jobs in AWS Import/Export)Writing lock fileGenerating autoload files

依存関係にあるパッケージが

インストールされる

Page 37: AWS SDK for PHPをインストールするならComposerでしょ!

Loading composer repositories with package informationInstalling dependencies (including require-dev) - Installing symfony/event-dispatcher (v2.3.5) Downloading: 100%

- Installing guzzle/guzzle (v3.7.3) Loading from cache

- Installing aws/aws-sdk-php (2.4.6) Loading from cache

symfony/event-dispatcher suggests installing symfony/dependency-injection ()symfony/event-dispatcher suggests installing symfony/http-kernel ()aws/aws-sdk-php suggests installing doctrine/cache (Adds support for caching of credentials and responses)aws/aws-sdk-php suggests installing monolog/monolog (Adds support for logging HTTP requests and responses)aws/aws-sdk-php suggests installing symfony/yaml (Eases the ability to write manifests for creating jobs in AWS Import/Export)Writing lock fileGenerating autoload files

依存関係にあるパッケージが

インストールされるaws-sdk-php (2.4.6)guzzle(3.7.3)

Page 38: AWS SDK for PHPをインストールするならComposerでしょ!

$ vim composer.json

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

$ php composer.phar update

アプリがguzzle(3.6)までの対応だった場合

Page 39: AWS SDK for PHPをインストールするならComposerでしょ!

Loading composer repositories with package informationUpdating dependencies (including require-dev) - Removing guzzle/guzzle (v3.7.3) - Installing guzzle/guzzle (v3.6.0) Loading from cache

- Removing aws/aws-sdk-php (2.4.6) - Installing aws/aws-sdk-php (2.3.4) Loading from cache

Writing lock fileGenerating autoload files

Page 40: AWS SDK for PHPをインストールするならComposerでしょ!

Loading composer repositories with package informationUpdating dependencies (including require-dev) - Removing guzzle/guzzle (v3.7.3) - Installing guzzle/guzzle (v3.6.0) Loading from cache

- Removing aws/aws-sdk-php (2.4.6) - Installing aws/aws-sdk-php (2.3.4) Loading from cache

Writing lock fileGenerating autoload files

設定されたバージョンの範囲内でインストールされる

Page 41: AWS SDK for PHPをインストールするならComposerでしょ!

Loading composer repositories with package informationUpdating dependencies (including require-dev) - Removing guzzle/guzzle (v3.7.3) - Installing guzzle/guzzle (v3.6.0) Loading from cache

- Removing aws/aws-sdk-php (2.4.6) - Installing aws/aws-sdk-php (2.3.4) Loading from cache

Writing lock fileGenerating autoload files

設定されたバージョンの範囲内でインストールされるaws-sdk-php (2.3.4)guzzle(3.6.0)

Page 42: AWS SDK for PHPをインストールするならComposerでしょ!

$ vim composer.json

{ "require": { "aws/aws-sdk-php": "2.4.*", "guzzle/guzzle": "3.6.*" }}

$ php composer.phar update

バージョンの組み合わせが存在しない場合

Page 43: AWS SDK for PHPをインストールするならComposerでしょ!

Loading composer repositories with package informationUpdating dependencies (including require-dev)Your requirements could not be resolved to an installable set of packages.

Problem 1 - Conclusion: don't install aws/aws-sdk-php 2.4.6 - Conclusion: don't install aws/aws-sdk-php 2.4.5 - Conclusion: don't install aws/aws-sdk-php 2.4.4 - Conclusion: don't install aws/aws-sdk-php 2.4.3 - Conclusion: don't install aws/aws-sdk-php 2.4.2 - Conclusion: don't install aws/aws-sdk-php 2.4.1 - Conclusion: don't install guzzle/guzzle v3.7.3 - Installation request for aws/aws-sdk-php 2.4.* -> satisfiable by aws/aws-sdk-php[2.4.0, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.4.5, 2.4.6]. - Conclusion: remove guzzle/guzzle v3.6.0 - aws/aws-sdk-php 2.4.0 requires guzzle/guzzle ~3.7.0 -> satisfiable by guzzle/guzzle[v3.7.0, v3.7.1, v3.7.2, v3.7.3]. - Can only install one of: guzzle/guzzle[v3.7.0, v3.6.0]. - Can only install one of: guzzle/guzzle[v3.7.1, v3.6.0]. - Can only install one of: guzzle/guzzle[v3.7.2, v3.6.0]. - Installation request for guzzle/guzzle 3.6.* -> satisfiable by guzzle/guzzle[v3.6.0].

Page 44: AWS SDK for PHPをインストールするならComposerでしょ!

Loading composer repositories with package informationUpdating dependencies (including require-dev)Your requirements could not be resolved to an installable set of packages.

Problem 1 - Conclusion: don't install aws/aws-sdk-php 2.4.6 - Conclusion: don't install aws/aws-sdk-php 2.4.5 - Conclusion: don't install aws/aws-sdk-php 2.4.4 - Conclusion: don't install aws/aws-sdk-php 2.4.3 - Conclusion: don't install aws/aws-sdk-php 2.4.2 - Conclusion: don't install aws/aws-sdk-php 2.4.1 - Conclusion: don't install guzzle/guzzle v3.7.3 - Installation request for aws/aws-sdk-php 2.4.* -> satisfiable by aws/aws-sdk-php[2.4.0, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.4.5, 2.4.6]. - Conclusion: remove guzzle/guzzle v3.6.0 - aws/aws-sdk-php 2.4.0 requires guzzle/guzzle ~3.7.0 -> satisfiable by guzzle/guzzle[v3.7.0, v3.7.1, v3.7.2, v3.7.3]. - Can only install one of: guzzle/guzzle[v3.7.0, v3.6.0]. - Can only install one of: guzzle/guzzle[v3.7.1, v3.6.0]. - Can only install one of: guzzle/guzzle[v3.7.2, v3.6.0]. - Installation request for guzzle/guzzle 3.6.* -> satisfiable by guzzle/guzzle[v3.6.0].

頑張って組み合わせをさがしてみた結果

Page 45: AWS SDK for PHPをインストールするならComposerでしょ!

Loading composer repositories with package informationUpdating dependencies (including require-dev)Your requirements could not be resolved to an installable set of packages.

Problem 1 - Conclusion: don't install aws/aws-sdk-php 2.4.6 - Conclusion: don't install aws/aws-sdk-php 2.4.5 - Conclusion: don't install aws/aws-sdk-php 2.4.4 - Conclusion: don't install aws/aws-sdk-php 2.4.3 - Conclusion: don't install aws/aws-sdk-php 2.4.2 - Conclusion: don't install aws/aws-sdk-php 2.4.1 - Conclusion: don't install guzzle/guzzle v3.7.3 - Installation request for aws/aws-sdk-php 2.4.* -> satisfiable by aws/aws-sdk-php[2.4.0, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.4.5, 2.4.6]. - Conclusion: remove guzzle/guzzle v3.6.0 - aws/aws-sdk-php 2.4.0 requires guzzle/guzzle ~3.7.0 -> satisfiable by guzzle/guzzle[v3.7.0, v3.7.1, v3.7.2, v3.7.3]. - Can only install one of: guzzle/guzzle[v3.7.0, v3.6.0]. - Can only install one of: guzzle/guzzle[v3.7.1, v3.6.0]. - Can only install one of: guzzle/guzzle[v3.7.2, v3.6.0]. - Installation request for guzzle/guzzle 3.6.* -> satisfiable by guzzle/guzzle[v3.6.0].

頑張って組み合わせをさがしてみた結果

インストール失敗

Page 46: AWS SDK for PHPをインストールするならComposerでしょ!

$ vim composer.json

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

$ php composer.phar update

バージョンの組み合わせの範囲が広いと…

Page 47: AWS SDK for PHPをインストールするならComposerでしょ!

Loading composer repositories with package informationUpdating dependencies (including require-dev)

Page 48: AWS SDK for PHPをインストールするならComposerでしょ!

Loading composer repositories with package informationUpdating dependencies (including require-dev)

なかなか終わらない…

Page 49: AWS SDK for PHPをインストールするならComposerでしょ!

{ "require": { "aws/aws-sdk-php": "2.4.*", "guzzle/guzzle": "3.7.*" }}

開発で使用するときはマイナーバージョンまで指定しておいたほうがいいかも

Page 50: AWS SDK for PHPをインストールするならComposerでしょ!

Composer使うべき最大の理由?!

そして

Page 51: AWS SDK for PHPをインストールするならComposerでしょ!

公式ドキュメント

http://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/installation.html

Page 52: AWS SDK for PHPをインストールするならComposerでしょ!

冒頭で解説!!Composer

Page 53: AWS SDK for PHPをインストールするならComposerでしょ!

amazon様が

使えと!!

Composer

Page 54: AWS SDK for PHPをインストールするならComposerでしょ!

ありがとうございます