composerでPHPのプロジェクトを簡単に始める

composerとはなんぞや?

composerPHPのパッケージの依存関係やバージョン管理を行う仕組みで多くのライブラリがPackagistを通して利用可能です。

詳しいcomposerの記事は以下を参照していただくとして...

composerのautoloadを利用する

composerはパッケージ管理なので、別に公開することが前提ではありません。プライベートなプロジェクトでも普通に使うことができます。
composerを使えば、PSR-0に準拠した名前空間のautoloadも用意されていて便利です。準備に必要なのは以下の作業だけ

プロジェクトのディレクトリを作成

これから開発するプロジェクトのディレクトリを作りそこに移動

$ mkdir project
$ cd !$
composerをインストール

composer.pharをダウンロードしてきます。グローバルではなく個々のプロジェクト毎にインストールできます

$ curl -s http://getcomposer.org/installer | php
さくっとプロジェクトのひな形作成

composer.jsonを作成する必要がありますが、通常はコマンドラインからひな形が作成できますが、欲しいのはpackagistに登録するためではなく自分用の名前空間の登録だけです。
というわけで以下をcomposer.jsonとしてコピペ

{
   "repositories": [
     {
       "packagist": false
     }
   ],
   "autoload": {
     "psr-0": {"Oreore": "src"}
   }
}

Oreoreの部分はあなたのベンダー名をつけてくださいね。
あとは

$ php composer.phar install

するだけで、自前のライブラリは./src/Oreore/Hoge.phpのように書けばautoloadに対応できます。
composerは"packagist": falseを書かないと標準でリポジトリとしてPackagistを見に行こうとするようです。ただ自前のディレクトリ構造を用意したいだけなのにこのPackagistへのアクセスのためにインストールに時間がかかってしまいます。1分以上掛かることもあります。というわけでこの対策のためにfalseを書いています。これを書いておけば1秒も掛かりません。

composerのautoload.phpを利用する

これで準備完了です。あとはコードでautoload.phpをrequireするだけ

<?php
require __DIR__ . "/vendor/autoload.php";

use Oreore\Hoge;
$hoge = new Hoge();
...

名前空間を使うのもこれだと簡単だと思います。
Let's enjoy PHP with Composer.


あ、Composerって突然仕様が変わったりしてちょっとまだ安定してないので注意してね。(はーと)