Comporserの基本的な使い方

元々はSymfonyのパッケージ管理で使われていたcomporserですが最近ではphpのパッケージ管理で使われるようになりました。node.jsのnmp、rudyでいうところのbundlerみたいなものということになります。かねてからLinuxのyumやphpのpearなどいろんなパッケージ管理方法がありましたが、これらはOS単位でのパッケージ管理だったのでいちいちサーバー構築しないといけないということで非常に面倒です。そこでプロジェクト単位(アプリケーション単位)でパッケージを管理しようというものがcomposerということになります。
composerは依存関係のライブラリーを解決してインストールしてくれるので、とても便利です。

コンポーザーのインストール

php5.3.2以上じゃないとcomposerは使えないです。またサーバーにcurlがないとインストールできないです。curlがどうしても入れられない場合はcomposerの本家に言ってダウンロードしてくることもできます。https://getcomposer.org/
# curl -s http://getcomposer.org/installer | php
私はたいていのプロジェクトがDocumentRoot単位なのでたいていの場合はホームディレクトリにインストールします。都度インストールした方が使いやすいというのが私の印象ですが、グローバルにcomposerを使うこともできます。
# curl -sS https://getcomposer.org/installer | php
# mv composer.phar /usr/local/bin/composer

インストールが完了したら、コマンドを確認してみます。このコマンドでcomposerのコマンドがどんなものなのか確認できます。
$ php composer.phar
これでインストールは終わり。

パッケージをインストールする

symfonyをプロジェクト単位でインストールする

composerでパッケージをインストールします。symfonyをインストールする場合は直接引数を指定してプロジェクト単位でインストールすることができます。
$ composer* create-project symfony/framework-standard-edition /home/USER/www
インストールすると以下のようなファイルができています。インストールしたパッケージはvender以下におさめられます。composer.pharがcomposer本体、composer.lockがインストールのロックファイル、composer.jsonがパッケージ管理のデータベース的なものになります。
|-- .......
|-- composer.json
|-- composer.lock
|-- composer.phar
`-- vendor
|-- autoload.php
`-- composer

autoloaderはcomposerでインストールしたパッケージをすべて自動的に読み込んでくれるものです。
require_once 'vendor/autoload.php';
とするだけでインストールしたパッケージを読み込んでくれます。個々にincludeしたりrequireしたりする必要がなくなります。

パッケージ単位でインストールする

で、パッケージ単位でインストールする場合は、composer.jsonにインストールしたいパッケージを書きます。composer.jsonにインストールしたいパッケージを追記します。ここではphp5.4以下の場合bcryptで必要なパッケージircmaxellを追加します。
"require": {
.......
"ircmaxell/password-compat": "~1.0.3"
},

という風にjsonに追記して、
$ php composer.phar update
でインストールできます。(かなり時間かかりました。プログレスバー的なものがないので、途中心配になりました。)