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のお話。今日はここまで。