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

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

お盆休み、生まれたばかりの子供の子守りでアタフタしつつも、
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 にリネームする。
データベースの準備がある場合は、そちらを設定する。

database.phpの設定例 👇

<?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', // エンコーディング
  );
}

データベースを使用しない場合は、database.php を編集して DATABASE_CONFIG クラスの中身を空っぽにする。

データベースを使わないなら database.php は これだけでOK 👇

<?php
class DATABASE_CONFIG {}

~ ここから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なはず。

参考: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自体が起動していなかったりすると警告が表示される。)

コメント