LoginSignup
4
4

More than 5 years have passed since last update.

bin/vendorsコマンドでcomposerのライブラリをインストールする

Last updated at Posted at 2013-02-01

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をインクルードしたり剃る必要がないのでライブラリの管理コストがぐっと低減されます!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4