CakePHP 2.0 を少し試してみようと思ってXAMPP環境でセットアップしてみたので、手順をここに残す。
CakePHP は 高速開発フレームワーク であって、決して 高速フレームワーク ではない。
MVCフレームワーク・すぐ使える・すぐ作れる というのが売り。
まず、プロジェクトフォルダを作成。 名前を cake2.0.6 とした。
いちいち xampp/apache/conf/httpd.conf を編集したくないし、
他のプロジェクトを同時に動かすこともできるよう xampp/htdocs の配下に設置した。
時点で最新の安定板 2.0.6 をダウンロード。
ダウンロードした cakephp-cakephp-2.0.6-0-g5886b25.zip を展開。
展開したフォルダの中身をプロジェクトフォルダへコピー。 フォルダ構成は以下のようになる。
xampp/htdocs/cake2.0.6/app/
xampp/htdocs/cake2.0.6/lib/
xampp/htdocs/cake2.0.6/plugins/
xampp/htdocs/cake2.0.6/vendors/
:
うーん、plugins や vendors がこんな浅いところに…。
それに app/ にも Plugin や Vendor がある…。
vendors には Zend Framework のように include_path の設定が必要なものや
CakePHPとは無関係に動作するものを入れろ ということだろうか。
さておき
テストを自動化するようなツール類を使用するつもりは一切ないので以下を削除。
- app/Test/
- app/tmp/tests/
- app/webroot/test.php
- lib/Cake/Test/
- lib/Cake/TestSuite/
- lib/Cake/Console/Templates/default/classes/test.ctp
- lib/Cake/Console/Templates/skel/Test/
- lib/Cake/Console/Templates/skel/webroot/test.php
これで Eclipse を使っている時に気になる警告も消える。
普通のWEBシステムならばテストを自動化する必要ないだろう。
部品だけをテストして納めなければならない時は必要かもしれないが、
そうでなければ大抵は必要工数が増えるだけの無駄作業だ。
.htaccess などはひとまずそのままで、XAMPP のApache を起動。
http://localhost/cake2.0.6/ にアクセスして、CakePHPが動作することを確認。
開いた画面には必ず Notice が表示される。
Notice (1024): Please change the value of ‘Security.salt’ in app/Config/core.php to a salt value specific to your application [CORE\Cake\Utility\Debugger.php, line 717]
Notice (1024): Please change the value of ‘Security.cipherSeed’ in app/Config/core.php to a numeric (digits only) seed value specific to your application [CORE\Cake\Utility\Debugger.php, line 721]
「’Security.salt’ と ‘Security.cipherSeed’ の値を変えてくれ」と言うので、
app/Config/core.php を開き、
‘Security.salt’ にはテキトーな文字列を、’Security.cipherSeed’ にはテキトーな整数を設定。
これらはデフォルトから変わっていれば何でもいいが、晒したり、推測しやすい値を設定したりしてはダメだ。
前者はハッシュ生成に、後者は暗号化に用いるからだ。
まぁ、今はとりあえず動かすだけなので、’Security.cipherSeed’ には入力日時でも入れることにする。
もう一度動かすと Notice は消える。
Your database configuration file is NOT present.
Rename APP/Config/database.php.default to APP/Config/database.php
「データベース設定が無い」と言われているので
app/Config/database.php.default を database.php にリネームする。
データベースの準備がある場合は、そちらを設定する。
データベースを使用しない場合は、database.php を編集して DATABASE_CONFIG クラスの中身を空っぽにする。
データベースを使わないなら database.php は これだけでOK 👇
<?php class DATABASE_CONFIG {}
これで準備は整った(と思う)。
コントローラやモデルなどの実装は別の日に。
フォルダ構成を見れば CakePHP 1.3 からは あまり変わっていないようにも見えるが、
フォルダ名が変わった(大半のフォルダ名の頭文字が大文字になった)し、
__()関数の仕様も結果を出力をしない”当たり前の仕様”になった。
初めてCakePHPを見た時に馬鹿フレームワークだと感じさせてくれた命名規約も変わった。
もしも稼働中のシステムを CakePHP 1.x 系 から CakePHP 2.0 系 に変えるとするなら根気が必要そうだ。
コメント
http://cakephp.org/ では既に 2.1 の安定版がリリースされているようだが http://cakephp.jp/ ではまだのようだ。