CakePHP、CodeIgniter、Kohanaを使ってみた
暇な時間をみつけてCakePHPを使ってみた。PHPのフレームワークについて時間をとっていろいろ調べるのは初めてで、ほかにもCodeIgniterとKohanaを触ってみたのだが、いまいちだったので結局CakePHPを本格的に使ってみることにした。
でもCakePHPの話の前に、ざっくりCodeIgniterとKohanaについて。
CodeIgniter
CodeIgniterは軽量が売りのフレームワーク。たぶん。
- メリット
- 軽量、フレームワーク自体のカスタマイズがしやすい。
- 制約がすくない。
- 一通りの機能の習得が楽。
- 公式の日本語ドキュメントが整備されている。ここをみればほぼ理解できる。
- デメリット
- DB周りの機能が薄い。アクティブレコードがない(一応あるが、他のアクティブレコードの実装に比べてスカスカ)
- GETパラメータをデフォルトで削除する(使用できない)という設計がイヤ
- バリデーションの設計がイヤ(バリデーションの定義を設定するというより、バリデーションライブラリを使ってごりごりコーディングするような感じになる)
- Form周りの機能が薄い。(入力エラーになったときとかに入力値を自動で復元したりする機能がない。バリデーションとあわせて明示的に変数を指定する必要あり)
Kohana
kohanaはCodeIgniterのPHP5専用版といった感じです。CodeIgniterのデメリットの一つであるアクティブレコードの実装が解決されていたので、こっちのほうが良いかな?と思って調査したのが始まりです。
- メリット
- CodeIgniterに比べDB周りが強い。アクティブレコードの実装がある。
- CodeIgniter同様、制約が少ない、習得が楽。
- CodeIgniterに比べ、viewのテンプレート処理(Cakeでいうところのレイアウト)や認証ライブラリが標準のaddonで用意されている。
- PHP5専用なので、よりオブジェクト指向っぽくコーディングできる。
- モジュールにより部品化の設計がステキ。(アプリ→モジュール→システムのように階層化されていて部品化と拡張がしやすい)
- 日本語情報はあんましないが、公式の英語ドキュメントだけでもほぼ問題なく作業できる。
- デメリット
- やっぱしバリデーションとForm周りの機能が薄い。
バリデーションとFormの薄さがなんとかならないのか、と思ってCakePHPいきました。次回からようやくCakePHPのお話。今日はここまで。