2017年1月4日
CakePHPをComposerを使ってインストール
環境:Windows7(XAMPP)
Laravelインストール時にComposerはインストール済のため、その説明は省きます。
今回もLaravel同様に少しバージョンの低いCakePHPを導入。新しいものはドキュメントが少なく、先々困るので。
1.composer.jsonファイルの作成
ドキュメントルート直下(XAMPPの場合はC:\xampp\htdocs)に以下を記述したcomposer.jsonファイルを作成する。
{ "name": "example-app", "repositories": [ { "type": "pear", "url": "http://pear.cakephp.org" } ], "require": { "cakephp/cakephp": "2.5.*" }, "config": { "vendor-dir": "Vendor/" } }
2.CakePHPのインストール
コマンドプロンプトでドキュメントルートに移動し、composerよりCakePHPをインストールする。
composer install
これで、ドキュメントルート直下にVendeorフォルダが作成される。
3.Bakeを実行
コマンドプロンプトでルートディレクトリをカレントディレクトリに設定
【例】cd \d C:\xampp\htdocs
cake.batの書き換え
Vendor/bin/cake.bat
修正前: bash "%BIN_TARGET%" %* 修正後: cmd /C "%BIN_TARGET%" %*
bakeの実行(sampleプロジェクトの作成)
.\Vendor\bin\cake bake project C:\xampp\htdocs\sample
4.CAKE_CORE_INCLUDE_PATHの設定
デフォルトでは、bakeはCAKE_CORE_INCLUDE_PATHをハードコードするようになっているので修正
sample/webroot/index.php
define( 'CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'Vendor' . DS . 'cakephp' . DS . 'cakephp' . DS . 'lib' );
5.DebugKitプラグイン等をインストール
Vendor/cakephp/cakephp/にあるcomposer.jsonをsample直下にコピーし、インストール。
composerオートローダーとcakephpのオートローダーが競合する問題の解消
sample/Config/bootstrap.php
に以下を追記
// composerのautoloadを読み込み require ROOT . '/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();
6.DB設定ファイル
事前にMySQLの設定、データベースは作っておく。
Configディレクトリのdatabase.php.defaultをコピペして「database.php」にリネーム。
中身を適宜変更。
http://localhost/sample/にアクセスし、以下画像のように全部緑色になっていれば完成。
コメントを書く