ぼーず奮闘記

PHP、JavaScript、便利ツールなど気になるものを適当に。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-) |
CakePHPで高速Webアプリ開発|gihyo.jpにてcakephpの連載が始まりました。今回の連載では、cakephpの特徴がまとめられています。

私もPHPフレームワークは、Ethna、Maple、Mojaviを利用したことがありますが、Mapleは設定ファイルの記述が面倒に感じ、Ethnaは比較的面倒な設定は無いとはいえORマッパーが不十分で特定のDBにしか対応していない状況でした。しかし、それぞれのフレームワークには様々な良い点もありますが、私はcakephpをお勧めします。


習得までの時間が短い


まず1つ目に日本語に翻訳された優れたチュートリアルがあることです。筆者はCakePHPを始めるにあたって,「CakePHP プログラマーズ リファレンスガイド」の「付録 A. Cake ブログチュートリアル」をこなしました。CakePHPの入手からDBの設定,モデル,ビュー,コントローラの作成,バリデーションの追加といったWebアプリケーション開発で必要な作業を一通り体験することができます。


2つ目は標準のエラーメッセージがやけに親切なことです。解凍したパッケージをWebサーバーにそのままアップロードして動作させると,DBの接続情報が間違っているというメッセージが出ます。ここまでは普通ですが,モデル,ビュー,コントローラが足りないときはひな形となるPHPコードとファイルの設置場所のパスを示した画面が表示されるという親切ぶりです。これのおかげで行き詰まることなく習得初期の開発を進めることができました。


他にも細かいことですが,「日本語のCakePHPフォーラム」のトピックにノイズが少なく,書き込みに貼り付けられたPHPコードが綺麗に色付けされていたりとモチベーションを維持できる環境が整っていたことが挙げられます。



日本語の情報はまだまだ不足気味ですが、ブログチュートリアルを見て、実際同じように作りこむだけで基本的なものが学べますね。


設置が簡単かつ外部ライブラリに依存しない


CakePHPはパッケージをFTPでアップロードするだけで動作します。PHPが動作する標準的なレンタルサーバーであればたいてい動作するでしょう。また,PEARなどの外部ライブラリを一切必要としません。もちろん今までどおりPEARなどを利用することもできますので,使い慣れたライブラリを手放す必要はありません。




Webサーバーのドキュメントルートにフォルダごと置くだけで動作します。新しいフレームワークの勉強を始めるとき、とりあえず動かしてみたいと思うことがありますが、これが非常に簡単です。


PHP4と5の両方で動作する


多くのフレームワークはPHP4と5のどちらか専用だったり,バージョンによって動作対象が変わりますが,CakePHPはそのままでPHP4でも 5でも動作します。また,PHP6でも動作する予定となっています。ちなみにコアライブラリの中にmodel_php4.phpと model_php5.phpというファイルがあり,PHPのバージョンによってコードを分けている部分があることがわかります。




開発を行う際、環境によってはPHP4しか利用できなかったり、PHP5しか利用できない場合があります。それによって普段使っているフレームワークが利用できなくなることがありますが、cakephpではそれがありません。


病みつきになるActiveRecordパターンのO/Rマッパー


CakePHPのO/Rマッパー(オブジェクト志向における,オブジェクトとリレーショナルデータベースを関連付けするための仕掛け)はActiveRecordパターンを採用しており,SQL文を書くことなく非常に短い記述でレコードの抽出や書き換えが行えます。


さらにアソシエーション(関連付け)を記述することで,関連したテーブルの情報を自動的に取得できます。


たとえばブログシステムでエントリのIdをもとにエントリ内容と投稿者の情報とコメントとトラックバックを取得したいとき,アソシエーションを適切に設定しておけば「$this->Entry ->findById($id)」と書くだけで,すべての情報が連想配列となって返ってきます。筆者はこの便利さに病みつきになり,Railsの考え方の素晴らしさを実感しました。




確かに病み付きになります。cakephpの規約に沿ったテーブルであれば、検索、一覧表示、更新、登録機能が実装されたページをコマンドを実行するだけで作成できます。これを元にカスタマイズしていくことでDB周りの面倒な部分を大幅に省けます。


ビュー部分がピュアPHPである


CakePHPのMVCでいうビュー部分において,コントローラからセットされた値を表示するときは <?php echo h($title) ?>(hはhtmlspecialcharsの代替関数。CakePHPで予め定義されている)といったように,生のPHPコードを埋め込みます。


第二の言語といえるテンプレートエンジンの習得が不要なため,最小限の知識でビューを記述することができます。


また,正式にサポートされているわけではありませんがSmartyを利用することも可能なようです。




私としてはここが微妙な部分ではあるのですが・・・。HTMLがごたごたしているのは好きではないので、ある方が完全にSmarty対応させているようですので、そちらのほうが個人的には好きです。

$php→rails (rails に憧れる phper のブログ) - CakePHP 完全 smarty 化への道(2) ビフォーアフター

とまぁ、cakephpを利用した開発がやりたい・・・と思う今日この頃でした。
スポンサーサイト












管理者にだけ表示

トラックバックURL↓
http://umibozzu.blog26.fc2.com/tb.php/215-102bb536

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。