Symfony2は2.2以降composerでインストール出来るようになったので、Packagistのライブラリが利用しやすくなりましたが、2.0/2.1もcomposerとおなじPSR-0形式のAutoloaderを使ってるので、bin/vendorsコマンドでPackagistのライブラリを利用する事ができます。
aws-sdk-phpを例に説明します。
1. とりあえずPackagistで公開されているライブラリのgit(http)のURLを調べる。
Packagistのページからcannonicalのリンクを開いて、http (https://github.com/aws/aws-sdk-php.git) のリンクをコピーします。 ※1
※1 SSH/git-read-onlyのリンクを使うとbin/vendorsコマンドの時にgithubへのID/PASSが求められるので面倒です。
2. depsファイルにそのリンクを貼り付ける。
[aws-sdk-php]#セクション名はなんでも良い。
git=https://github.com/aws/aws-sdk-php.git
version=2.1.0 # tagsのページから必要なバージョンのタグ名を貼り付ける。
3. compser.jsonを開いて、requireでで必要されているライブラリを調べる。
{
//.......
"require": {
"php": ">=5.3.2",
"guzzle/guzzle": "~3.1.2"
},
//.......
"autoload": {
"psr-0": {
"Aws": "src/"
}
}
}
aws-sdk-phpの場合Guzzleを必要としてるので、Guzzleのgitのリンクを調べてdepsに追加します。
[aws-sdk-php]
git=https://github.com/aws/aws-sdk-php.git
version=2.1.0
[guzzle]
git=https://github.com/guzzle/guzzle.git
version=v3.1.2
4. bin/vendorsコマンドを実行
php bin/vendors install(update)
を実行して上記で追加したファイルがvendorsディレクトリに入っている事を確認します。
(vendors/[セクション名]にライブラリがインストールされるはずです。)
5. app/autoloader.phpを修正。
composer.jsonの autoload セクションを元に、app/autoloader.phpを修正します。
$loader->registerNamespaces(array(
'Symfony' => __DIR__.'/../vendor/symfony/src',
'Monolog' => __DIR__.'/../vendor/monolog/src',
//...
//...
'Aws' => __DIR__.'/../vendor/aws-sdk-php/src',
'Guzzle' => __DIR__.'/../vendor/guzzle/src',
));
配列のキーにautoload > psr-0 > キー
配列の値にDIR.'/../vendor/[depsのセクション名]/autoload > psr-0 > バリュー'
を設定します。
上記で、設定が完了です。
別途、composerコマンドを入力したり、compposerのautolaod.phpをインクルードしたり剃る必要がないのでライブラリの管理コストがぐっと低減されます!