[PHP] CakePHP 2.2.1 をセットアップ

高速開発フレームワーク CakePHP

お盆休み、生まれたばかりの子供の子守りでアタフタしつつも、
XAMPP環境に CakePHP 2.2.1 をセットアップしてみたので、手順をここに残す。

3月上旬に2.0.6のセットアップ手順を書いたばかりというのに8月現在の最新安定版はなんと2.2.1。
とても活発に開発が進んでいるようだ。


OSは Windows 7 (64bit)、XAMPPは 1.7.4 (Apache 2.2.17 + PHP 5.3.5 + MySQL 5.5.8)を使用。


まず、Pleiades (Eclipse for PHP Developers) でプロジェクトフォルダ「cake2.2.1」を作成。
他のプロジェクトも同時に動かすこともできるよう xampp/htdocs の配下に設置。

予めダウンロードした CakePHP 2.2.1 (cakephp-cakephp-2.2.1-0-gcc44130.zip) を展開。
展開したフォルダの中身をプロジェクトフォルダへコピーし、
Eclipse の PHP エクスプローラー(ナビゲーター類)をリフレッシュ。

フォルダ構成は以下のようになる。

xampp/htdocs/cake2.2.1/app/
xampp/htdocs/cake2.2.1/lib/
xampp/htdocs/cake2.2.1/plugins/
xampp/htdocs/cake2.2.1/vendors/


次に app/Config/core.php を開き、
‘Security.salt’ にはテキトーな文字列を、’Security.cipherSeed’ にはテキトーな整数を設定。
デフォルトと同じでなければ何でもいいが、晒したり、推測しやすい値を設定したりしてはダメだ。
前者はハッシュ生成に、後者は暗号化に用いるからだ。
とりあえず動かすだけなので、’Security.cipherSeed’ には現在日時を入れておく。


次に app/Config/database.php.default を database.php にリネームする。
データベースの準備がある場合は、そちらを設定する。
[crayon title=”database.phpの設定例” language=”PHP”]
class DATABASE_CONFIG
{
public $default = array(
‘datasource’ => ‘Database/Mysql’, // データソース (Ver2以降では’driver’は使われない)
‘persistent’ => false, // 持続的接続(persistent connection)を使うかどうか
‘host’ => ‘localhost’, // ホスト
‘port’ => ”, // ポート(デフォルトならブランクでOK)
‘login’ => ‘cakephp’, // データベースユーザ
‘password’ => ‘password’, // パスワード
‘database’ => ‘cakephp_2_2_db’, // データベース
‘schema’ => ”, // PostgreSQLで使用するスキーマ
‘prefix’ => ”, // テーブルの接頭語
‘encoding’ => ‘utf8’, // エンコーディング
);
}
[/crayon]
データベースを使用しない場合は、database.php を編集して DATABASE_CONFIG クラスの中身を空っぽにする。
[crayon title=”データベースを使わないなら database.php は これだけでOK” language=”PHP”]class DATABASE_CONFIG {}[/crayon]


~ ここからEclipse警告対策+α (省略可能) ~


テストを自動化するようなツール類を使用するつもりは一切ないので以下を削除。

  • 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

2.0ならこれで警告は消えていたが、2.2では1つ残る。

  • /cake2.2.1/build.xml

「build.xml」は「build.properties」とセットでAntに使われるファイルで、
Javaでの開発では当然の如く使われるものだ。
なぜそのファイルが含まれているのかは不明。
GitとかPearとか言っているので「間違ってリリースしちゃいました」かもしれない。
とにかく今はそんなことを知る必要がないので放置。
使い方がわからないなら消しても問題は全くないだろう。

もし警告に真っ向から立ち向かう気なら「<!DOCTYPE project>」と追記するとOKなはず。
[crayon title=”build.xmlの警告を消すんは” language=”XML”]


[/crayon]
参考:penultimate diary, MSDN


もし [ウィンドウ]→[設定]→[一般]→[コンテンツ・タイプ] で
[テキスト]→[PHPコンテンツ・タイプ] に「*.ctp」を追加していると、以下でも警告が出る。

  • /cake2.2.1/lib/Cake/Console/Templates/default/actions/controller_actions.ctp
  • /cake2.2.1/lib/Cake/View/Elements/sql_dump.ctp

「controller_actions.ctp」は「Bake Template for Controller action generation.」と書いてるので
Bakeでコントローラを生成する際に使われるものだとわかる。
「HTMLなら『>』は『&gt;』と書かないとダメだろ!」と警告されるが、
実際はHTMLではなくPHPソースのテンプレートなので全く問題はない。
Bakeを使わないなら「controller_actions.ctp」は消してもOKなようだ。
しかし「sql_dump.ctp」はデバッグモードで使用するのでファイルを消すわけにはいかない。
「HTMLのtableタグが開始していないのに終了してるぞ!」と警告されるが、
PHPで開始タグを出力しているので事実上問題はない。
どうしても「sql_dump.ctp」の警告を消したいのなら、tableタグの閉じタグをechoで出力するようにすればよい。


~ ここまで Eclipse 警告対策 + α ~

最後にXAMPPのApacheを起動し http://localhost/cake2.2.1/ へアクセスして、警告なしでCakePHPが動作することを確認。
(DBの設定が間違っていたりDB自体が起動していなかったりすると警告が表示される。)

スポンサーリンク