Composerを使ってCakePHP2.4.1とDebugKitをインストールするまで
CakePHPの最新安定版である、バージョン2.4.1をComposerを使用してインストールし、プラグインのDebugKitをインストールするまでを公式ドキュメントをもとに解説します。
追記(2013/10/2)
このディレクトリ構成だとCakePHP本体側とプロジェクト側とで定数に違いが出てしまいBakeコマンドが使えなくなることが判明しました。なので、ディレクトリ構成を公式ドキュメントに近づける形でちょっと変えます。
http://book.cakephp.org/2.0/ja/installation/advanced-installation.html
まず、プロジェクトのルートディレクトリになるフォルダを作ります。今回の例ではホームディレクトリに今回のプロジェクトルートになる「example-app」という名前でディレクトリを作成します。
mkdir ~/example-app
次にexample-appへ移動して用意したディレクトリにcomposerをインストールします。
cd ~/example-app curl -sS https://getcomposer.org/installer | php
ここまでのディレクトリの構成はこんな感じです。
~/example-app/ composer.phar
次にインストールするソフトを記述する「composer.json」というファイルを新規に作成します。
vim ~/example-app/composer.json
内容は以下のとおりに記述します。
{ "name": "example-app", "repositories": [ { "type": "pear", "url": "http://pear.cakephp.org" } ], "require": { "pear-cakephp/cakephp": ">=2.4.1" }, "config": { "vendor-dir": "Vendor/" } }
ここまでのディレクトリの構成はこんな感じです。
~/example-app/ composer.phar composer.json
次にいよいよ、composerでCakePHPをインストールします。
以下のコマンドを実行します。
php composer.phar install
これだけでインストール完了。
ここまでのディレクトリの構成はこんな感じです。
example-app/ composer.phar composer.json Vendor/ bin/ autoload.php composer/ pear-pear.cakephp.org/
次にCakePHPプロジェクトを作成します。
bakeコマンドを使えば簡単にコマンドラインからプロジェクトを作成できます。
Vendor/bin/cake bake project ~/example-app
これで、example-appフォルダ以下にプロジェクトが作られました。
次にwebroot/index.phpにパスに関する定数が定義されているので、それを編集して CAKE_CORE_INCLUDE_PATHの定数を絶対パスから相対パスに変更します。変更する理由は、デプロイした時に困るからです。
CAKE_CORE_INCLUDE_PATHを定義している箇所を探して、コメントアウトしてから以下の記述を追加します。
define( 'CAKE_CORE_INCLUDE_PATH', ROOT . DS . APP_DIR . '/Vendor/pear-pear.cakephp.org/CakePHP' );
公式のドキュメントと定義内容に違いがあるのは、ディレクトリ構造の違いのためです。今回の例では、APP_DIRがexample-appになるので公式ドキュメント通りに行うと、example-app/app/Vendorが定数として定義されてしまいます。
公式ドキュメントどおりに設定。
次にプラグインであるDebugKitをインストールします。
最初に作ったcomposer.jsonに以下の記述を追加します。
vim ~/example-app/composer.json
{ "require": { "cakephp/debug_kit": "2.2.*" } }
composer.jsonの全文を載せます。
{ "name": "example-app", "repositories": [ { "type": "pear", "url": "http://pear.cakephp.org" } ], "require": { "pear-cakephp/cakephp": ">=2.4.1", "cakephp/debug_kit": "2.2.*" }, "config": { "vendor-dir": "Vendor/" } }
インストールをします。
php composer.phar update
これでインストールされます。
ここまでのディレクトリの構成はこんな感じです。
example-app/ composer.phar composer.json ... 生成されたプロジェクトのフォルダ ... Plugin/ DebugKit/ Vendor/ bin/ autoload.php composer/ pear-pear.cakephp.org/
最後にapp/Config/bootstrap.phpを編集して以下の記述を追加します。
// composerのautoloadを読み込み require APP . '/Vendor/autoload.php'; // CakePHPのオートローダーをいったん削除し、composerより先に評価されるように先頭に追加する // https://github.com/composer/composer/commit/c80cb76b9b5082ecc3e5b53b1050f76bb27b127b を参照 spl_autoload_unregister(array('App', 'load')); spl_autoload_register(array('App', 'load'), true, true); CakePlugin::loadAll();
Vendor/autoload.phpを一度読み込めば良い状態になるので、Composer経由でインストールするだけです。
CakePlugin::loadAll()でプラグインを読み込みます。
これで完了。あとは、databaseの設定だけ。
公式ドキュメントのやり方とは結構違います。に近づけました。