【Composer, XAMPP】CakePHP2とDebugKitをインストールする
ComposerでCakePHP2とDebugKitをインストールします。この記事はXAMPPのインストール及び、php.exeがあるフォルダへの環境変数が設定されていることを前提としています。基本的にComposer ドキュメント日本語訳、CakePHP2 応用インストールの通りですが、フォルダ構成を個人的に変更しています。
Composer のダウンロード
Windows付属のコマンドプロンプトを使ってダウンロードします。XAMPPのphpフォルダに環境変数を設定しているので、今回はそちらにダウンロードすることにします。以下のコマンドでcomposer.pharがダウンロードがされます。
$ php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"
composer.bat を作成
Composerをphp composer.phar
ではなくcomposer
で実行できるようにします。composer.pharをダウンロードしたフォルダ(今回はXAMPPのphpフォルダ)に、コマンドプロンプトでバッチファイルを作成します。以下のコマンドの実行でcomposer.batというバッチファイルができます。
$ echo @php "%~dp0composer.phar" %*>composer.bat
ダウンロードしたComposerのバージョンを確認してみます。
$ composer --v
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version x.x.x xxxx-xx-xx xx:xx:xx
composer.json の作成
CakePHPとDebugKitをインストールするためのcomposer.jsonを開発フォルダに作ります。今回はC:¥Users¥xampp¥htdocs¥appを開発フォルダとします。なお、インストールするバージョンはそれぞれ適当なものにしてください。※初めにも書きましたが公式とは構成が異なっています。
この時点でのフォルダ構成は以下となっています。
app/
`-- composer.json
CakePHP, DebugKit をインストール
では、作成したcomposer.jsonを元にインストールをします。開発フォルダへ移動したあと、インストールコマンドを実行します。
$ composer install
Loading composer repositories with package noticermation
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
- Installing composer/installers (v1.4.0): Loading from cache
- Installing cakephp/cakephp (2.10.1): Loading from cache
- Installing cakephp/debug_kit (2.2.6): Loading from cache
Writing lock file
Generating autoload files
簡単にインストールが完了しました。この時点のフォルダ構成は以下となっています。
app/
|-- src/
| `-- Plugin/
| `-- DebugKit/
|-- vendor/
| |-- bin/
| |-- composer/
| |-- cakephp/
| `-- autoload.php
|-- composer.json
`-- composer.lock
CakePHP プロジェクト作成
Bakeでアプリケーションのスケルトンの残り部分(MVCなど)を作成します。
cake.bat の修正
公式の手順ではWindows(XAMPP)でエラーが出てしまいました。原因であるVendor¥bin¥cake.batの7行目を修正します。
- bash "%BIN_TARGET%" %*
+ cmd /C "%BIN_TARGET%" %*
Bake の実行
プロジェクトを作成します。ここからはWindows付属のPowerShellを使用します。
プロジェクト名をsrc
としていますが、任意の名前にしてください。
$ vendor/bin/cake bake project src
...
...
...
Project baked successfully!
プロジェクトがapp/srcに作成されました。この時点のフォルダ構成は以下となっています。
app/
|-- src/
| |-- Config/
| |-- Console/
| |-- Controller/
| |-- .../
| `-- Plugin/
| `-- DebugKit/
| |-- .htaccess
| |-- index.php
|-- vendor/
| |-- bin/
| |-- composer/
| |-- cakephp/
| `-- autoload.php
|-- composer.json
`-- composer.lock
CakePHPプロジェクト 開発
プロジェクト開発の準備をしていきます。
CAKE_CORE_INCLUDE_PATH の修正
定数CAKE_CORE_INCLUDE_PATH
がハードコードされているので、相対パスへと変更します。修正ファイルはwebroot/index.phpとwebroot/test.phpです。修正内容は公式サイトの通りです。
- ver 2.10.1 は元から相対パス?
今回インストールしたver 2.10.1で作成したプロジェクトでは、CAKE_CORE_INCLUDE_PATHが相対パスで書かれてあり、修正の必要はありませんでした。
今回は個人的にフォルダ構成を変更したので、CAKE_CORE_INCLUDE_PATH
を修正します。
cake.php の修正
公式サイトにはありませんがConsole/cake.phpも修正しておきます。composer.jsonの内容が公式通りであれば修正の必要はありません。
// $composerInstall = $root . DS . $appDir . DS . 'Vendor' . DS . 'cakephp' . DS . 'cakephp' . DS . 'lib';
$composerInstall = $root . DS . 'vendor' . DS . 'cakephp' . DS . 'cakephp' . DS . 'lib';
上記の$composerInstall
が存在しなければ以下の$install
を読み込むようになっています。同じpathにしてしまうと意味がなくなるかもしれませんが……。
// $install = $root . PATH_SEPARATOR . 'C:' . DS . 'xampp' . DS . 'htdocs' . DS . 'app' . DS . 'src' . DS . 'Vendor' . DS . 'cakephp' . DS . 'cakephp' . DS . 'lib';
$install = $root . DS . 'vendor' . DS . 'cakephp' . DS . 'cakephp' . DS . 'lib';
autoload.php を読み込む
Composerが生成したオートローダーautoload.phpをbootstrap.phpで読み込みます。
DebugKit 有効化
DebugKitを使用できるようにしていきます。今回は全てのプラグインをロードしていますが、必要なプラグインのみのロードもできます。詳しくは公式サイトにあります。
プラグインのロード
bootstrap.phpで使用するプラグインをロードします。
プラグインの有効化
全てのコントローラーで有効化するためAppController.phpにて設定します。
以上でインストール及び開発準備が終わりました。
おわりに
久々にバージョンを上げましたが、相対パスの修正が無くなり簡単になっていました。