ラベル CakePHP の投稿を表示しています。 すべての投稿を表示
ラベル CakePHP の投稿を表示しています。 すべての投稿を表示

2010年5月2日日曜日

PHP の開発環境を整える (2010.5) - CakePHP の準備

1. 開発環境の一覧

この時期、恒例になってきた開発環境の整備。変なエラーに煩わされないことを祈りつつ設定 (+_+)

利用するツールとバージョンは以下の通り。

 

2. CakePHP を利用するための準備

今回、開発環境を新しくした理由は、修正したいコードがあったため。修正対象のソースコードで、PHP が使われている部分は、

  1. パーツに分割した HTML を結合する処理と ( cf. フレームの代わりにPHPを使う ) 、
  2. フォームでの問い合わせの処理。

DB は使用していない。処理はシンプルなので、テンプレートエンジンを使わず、自前で MVC ライクに書いている。しかし、いくら単純でも、Web ページの数が増えてくると、重複した部分が徐々に気になってくる。フレームワークを使うように変更しようか、検討中。

以前に、CakePHP を試してみようと環境を整えたことがある。

軽量なフレームワーク

も良さげだけれど、 PHP で他のフレームワークを使ったことがないので、とりあえず CakePHP への移行が無難かな。

PHP はたくさんのフレームワークが乱立している。なるべくシンプルでコンパクトなものを使いたい。以下の図による説明を見ると、今回の自分のやりたいことに対して、CakePHP は、妥当な選択に思えた。

ちなみに、調べていたら、 symfony からのつながりで、Twig というテンプレートエンジンが気になった。一度、使ってみたい。

http://www.twig-project.org/

Twig via kwout

 

使用する CakePHP のバージョン

CakePHP のバージョンを確認したら、1.3.0 と 1.2.7 がリリースされている。1.3 はまだ出たばかりのようなので、今回は 1.2.7 を利用することにした。

現時点では、1.2 の方がドキュメントが充実している。

 

PDT へ CakePHP のソースコードをインポート
  1. cakephp / cakephp1x より、1.2.7 をダウンロードして解凍。
  2. PDT で新規に testCakePHP2 プロジェクトを作成。
  3. 解凍した CakePHP のソースコードを testCakePHP2 プロジェクトに D&D。
  4. プロジェクトのプロパティで Resource > Text file encoding を UTF-8 に変更。

 

Apache の設定

Apache の httpd.conf で以下の記述がコメントアウトされているのを確認。 ( cf. Apacheとmod_rewrite )

LoadModule rewrite_module modules/mod_rewrite.so

テスト用のアプリケーションの設定のために以下の記述を追加。

Alias /testCakePHP2/ "C:/develop/tool/eclipse/workspace/testCakePHP2/"
<Directory "C:\develop\tool\eclipse\workspace\testCakePHP2/">
    Options FollowSymLinks 
    AllowOverride All
    Allow from All
</Directory>

ただし、PDT が利用する workspace は、

C:/develop/tool/eclipse/workspace/

であるとする。また、アプリケーションのルートの URL は、

http://localhost/testCakePHP2/

とする。上記の設定中 Options FollowSymLinks を有効にしているのは、Old Nabble - CakePHP - Forbidden Error によると、

In order for mod_rewrite to work you have to have:
Options FollowSymLinks
Put that right under the AllowOverride All and it should work. :)

 

CakePHP の .htaccess に RewriteBase を追加

次に CakePHP on XAMPP でちょっとはまった « 43HR を参考にして、PDT にインポートした CakePHP のソースコードの以下の各々のファイルに内容に RewriteBase を追加。

  • testCakePHP2/.htaccess に RewriteBase /testCakePHP2
  • testCakePHP2/app/.htaccess に RewriteBase /testCakePHP/app
  • testCakePHP2/app/webroot/.htaccess に RewriteBase /testCakePHP2/app/webroot

 

debugger.php の設定

これで http://localhost/testCakePHP2/ にアクセスすることができるようになった。ただし、以下の警告が表示される。

Notice (1024): Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE\cake\libs\debugger.php, line 548]

CakePHPブログチュートリアル :: 開発例 :: マニュアル :: 1.2 Collection :: The Cookbook によると、

security saltは、ハッシュの生成に用いられます。/app/config/core.phpの153行目を編集し、デフォルトのsalt値を変更してください。

これにより、警告が消える。

 

3. MySQL の設定

今回は DB を使う予定はない。しかし、http://localhost/testCakePHP2/ にアクセスすると警告がでるので、ついでに DB の設定もしておく。

XAMPP のコントロールパネルで MySQL の Start ボタンを押す。

Admin ボタンで phpMyAdmin を起動。(phpMyAdmin を使いたくない場合は、MySQL Workbench を利用するとよい。)

データベース」タブを選択し、新規にデータベース testcakephp を作成。

img05-02-2010[2]

XAMPP の MySQLと PHP の説明によると、

MySQLは "root" に対するパスワード無しで起動します。したがってPHPではMySQLサーバを以下で接続できます: mysql_connect("localhost","root","")
MySQLの"root" に対するパスワードを設定したい場合は、コンソール(Console)の下の"mysqladmin"を使ってください。

testCakePHP2\app\config の database.php.default を database.php に名前を変更。 database.php で $default 変数のハッシュのキーに対する値において、

  • login を root
  • password を空
  • database を 上記で作成した testcakephp

に変更する。これで、http://localhost/testCakePHP2/ にアクセスすると警告が消える。

データベースで、アプリケーション専用のユーザを作成してアクセスしたいなら、phpMyAdmin の「特権」タブにおいて、test ユーザを作成。パスワードを test とする。その際、グローバル特権にデータと構造に全てチェックを付けておいた。

img05-02-2010[3]

上記の database.php に戻り、

  • login を test
  • password をtest
  • database を 上記で作成した testcakephp

と設定する。

http://localhost/testCakePHP2/ にアクセスすると、オールグリーンで準備完了。

img05-02-2010[1] 

 

4. 分散バージョン管理に移行しようかな…

分散バージョン管理Git/Mercurial/Bazaar徹底比較 (1/5) - @IT (2009/1/14) によると、

分散バージョン管理システムでは、ローカルのブランチに対して作業を行い、テストまできちんと終了した作業のまとまりを中央リポジトリへ反映できます。

出先で、ノート PC を利用してバージョン管理をしたいので、そろそろ分散バージョン管理に移行しようかな。

個人的には Haskell で作られている Darcs を使ってみたい。

 

関連記事

2008年4月30日水曜日

CakePHP で文字化け

第5回 CakePHPで作るToDoアプリ(1) を試していたら、出力の部分で文字化けしてしまった。

続・CakePHPと文字化け (PHP学習日記) によると、

CakePHPではdatabase.phpに,encodingオプションを追加することでエンコードをセットすることができます。

ということなので、 app/config/database.php の設定に、

'encoding' => 'utf8',

を加えたら、文字化けが解消された。

 

(via. "文字化けが起こらない設定は??" フォーラム - CakePHP Users in Japan)

2008年4月28日月曜日

CakePHP の環境を整える

前提となるツール

  • PDT が使えること。
  • XAMPP がインストールされていること。

(cf. PHP の開発環境を整える)

 

CakePHP を利用するための手順

CakePHPで高速Webアプリ開発:第4回 CakePHPでの開発環境を構築する の説明に従った。

(この連載の第12回 を読むと、CakePHP の概略をざっと把握できる。)

CakeForge: CakePHP: Project Filelist より Stable の cake_1.1.19.6305.zip をダウンロードして、解凍した。

 

PDT の設定

PDT で PHPProject を作成する。(testcake とした。)

File > import で、先ほど解凍した cake_1.1.19.6305 フォルダ をインポート。

インポートしたらエラーが表示されたので、プロジェクトのプロパティで、文字コードを UTF-8 に変更した。

testcake プロジェクト直下の index.php で右クリック > Run As > Open Run Dialog... を選択。 以下のように設定して実行する。

Image1

Eclipse に内蔵されたブラウザに、以下のように表示された。この表示は、Apache の mod_rewrite が設定されてないときの表示。

Image2

 

Apache の設定 - mod_rewrite

Cookbook :: 1.2 Collection :: The Manual :: Developing with CakePHP :: Installation :: Apache and mod_rewrite を参考にし、D:\xampp\apache\conf\httpd.conf の以下の行をコメントアウトした。

LoadModule rewrite_module modules/mod_rewrite.so

再度、上記と同じように index.php を実行したら、以下のように表示された。

Image4

 

データベースの設定

app/config/database.php.defaultをコピーまたはリネームして,app/config/database.php を作成します。

(http://gihyo.jp/dev/serial/01/cakephp/0004?page=2 より)

http://localhost/phpmyadmin/ にアクセスして、 ユーザ cake を作成した。

Image5

再度、上記と同じように index.php を実行したら、以下のように表示されるようになった。

Image6