[php]Eclipse+PDT+xamppでcakephp1.2入門

php

 先日紹介したPleiades All-in-One EclipseのUltimate版をインストールしたので、EclipseもPDT(PHP Development Tools)も初挑戦しています。

 第一印象、やっぱりEclipseって重いですね。

 そんなことはさておき、最初に「[XAMPP+Eclipse PDT] WindowsでPHP開発環境[文系大学的IT系の悲哀]」を読んで、phpの実行環境やローカルサーバーの定義をしておきましょう。それから、PHPのパースペクティブに切り替えて、PHPのプロジェクトを作成しました。

PHPプロジェクトの作成(※クリックで拡大)
PHPプロジェクトの作成

 んでもって、プロジェクトに、解凍したcake1.2alphaを突っ込んだら、急にEclipseが重くなった。なんかビルド処理?をしているようで、しょうがなく待っていたらエラーをたくさんはいてきた。

ビルド処理を終えた後に大量のエラー(※クリックで拡大)
ビルド処理を終えた後に大量のエラー

 最初のneat_string.phpのエラーはヨーロッパ系の文字の変換テーブルみたいなのが文字化けして構文エラーをだしていた。いろいろいじっていたらプロジェクトを右クリックして[プロパティー]ダイアログをだし、[リソース]項の[テキスト・ファイル・エンコード]フィールドをその他(UTF-8)にして、[OK]すると、プロジェクト全体をUTF-8で再びビルドし始めて、今度はエラーがだいぶ減った。

[プロパティー]ダイアログの[リソース]項(※クリックで拡大)
[プロパティー]ダイアログの[リソース]項

UTF-8でビルド処理を終えた後はエラーが減った(※クリックで拡大)
UTF-8でビルド処理を終えた後はエラーが減った

 残りのエラーは、調べましたが、どれもたいしたことないエラーです。ある1つのphpファイル内で、HTML構造のタグが対になっていないとか、そういった類のエラーです。CakePHPはheader.phpとfooter.phpを分離している部分があるので、1つのphpファイル内でHTML構造が完全ではないことがあります。まぁ、HTML構造までしっかり見ているEclipseがすごいんだか、若干お節介なんだか。エラーを無視する方法がわからないので、スルーします。

 CakePHPの勉強開始です。書籍は『PHPフレームワーク完全マスター―PHP5.2.3PHP4.4.7対応』です。Part1のZendFrameworkをすっとばして、Part2のCakePHPから読み始めてます。CakePHPのバージョンは本に習って1.2alphaです。まずは、DBの設定とCAKE_SESSION_STRINGの値の変更をしました。次に/app/models/sample.phpにSampleモデルを書き、/app/controllers/samples_controller.phpにSamples_Controllerコントローラを書きました。PHPファイルの作成は、親ディレクトリを右クリックして、[新規]->[PHPファイル]で出てくるダイアログできます。とりあえず現時点で実行してみると、次のようなエラーになりました。

SamplesControllerのindexアクションに対するViewがない(※クリックで拡大)
SamplesControllerのindexアクションに対するViewがない

 そう、Viewを忘れてました。/app/views/samples/にindex.ctpを作らなきゃいけなかったみたいです。ん?ctpCakePHPの1.2からビューの拡張子がthtmlからctpに変わったのか。知らなかった。じゃぁ、さっきと同じように[新規]->[PHPファイル]で新規作成ダイアログを出して、index.ctpを入力したら、拡張子がだめだって言われました。めんどくさいなぁ。。。;;

index.ctpファイルは拡張子がダメダメだから作りたくないです(※クリックで拡大)
index.ctpファイルは拡張子がダメダメだから作りたくないです

 どうやらPHPファイルとして拡張子の関連付けを行ってなければ[PHPファイル]新規作成ダイアログからは作れないオチらしい。いろいろと設定を探してたら、見つけました。[ウィンドウ]->[設定]ダイアログの[一般]->[コンテンツ・タイプ]項のツリーの、[テキスト]->[PHP コンテンツ・タイプ]アイテムです。長いから、画像見てもらったほうが早いです。

*.ctp/*.thtml拡張子の追加(※クリックで拡大)
*.ctp/*.thtml拡張子の追加

 PHP関係の拡張子として*.ctpと*.thtmlを追加しておきました。これで[PHPファイル]新規作成ダイアログからindex.ctpが作れるようになりました。ここに適当なHello World入れて、ようやくSamplesコントローラのindexアクションが表示されました。

Hello Worldでた(※クリックで拡大)
Hello Worldでた

 ここまで出るのに結構時間かかったなぁ。CakePHPの勉強っていうより、Eclipseの勉強の割合のほうがぜんぜん大きかったり(汗 とりあえず、どっちもがんばりますか。


About: uechoco