そうか、Kohanaが急激によくなっているんだ

Kohana2は急激に良くなっている。こっちは 宣伝に偽りありで申し訳ございません -- CodeIgniter自体は急激に変わっていない - なんたらノート 第二期 こんなことなく、個人的な感覚とは関係ないお話。よくあるフレームワークと違わないと思って名前しか知らなかったけど、CodeIgniter派生なら設計のコンパクトさを引き継いでるだろうと、軽くドキュメントを斜め読みしてみた。

http://docs.kohanaphp.com/

  • コミュニティベースの開発のため、適用シーンに偏りがなくなった
  • モジュールのローディングがエレガント
  • 全般的にネーミングセンスが素直になったように感じる
  • ファイル保存なサーバサイドセッションも選択肢にある(クライアントサイドはデフォルト値)
  • Active RecordはQuery Builderに改名され、O/Rマッピングが増えている
  • バリデーションコードを再利用できるヘルパがある
  • クェリパラメータをサポートしている($_GETが生きている)
  • 下手にネイティブPHPグローバル変数を殺さないようになっているらしい
  • なので、バリデーション対象を$_POSTのみとしないようになった*1

ふむふむ、フレームワークのソースに手を加えなくても、どこにでもフィットしそうな気がするぞ。CodeIgniterが「ソースを見ればわかる」「気に入らない部分のソースをいじれば何でもできる」だったのに対して、こっちはソースハッキングしなくても満足できそう。コミュニティのユーザによるソースハックは、自分がしなくてももう済んでいるんだから。

----いますぐ置き換えられるか調べてみると…

http://docs.kohanaphp.com/installation/requirements

  • PHP version >= 5.2.0

で、

  • PCRE must be compiled with –enable-utf8 and –enable-unicode-properties for UTF-8 functions to work properly.
  • iconv is required for UTF-8 transliteration.
  • mcrypt is required for encryption.
  • SPL is required for several core libraries.

だって。ぎゃふん。
どんな受注案件にでも使えるもんじゃなかった、ということで、ペンディング。

ただ、Kohanaの存在は、CodeIgniterの嫌な部分 | Oddwit と感じる方も、私も、両者納得できるものが存在することを示してくれてると思いました。「こっちの利点を活かすために、そっちの気持ち悪さは我慢しろ」ってのは、自分も大人気なかった。
「CodeIgniterの基本は好きだけど、オリジナルのままだと気に入らない箇所があちこちにありすぎる」と思ってる層がたしかに存在(私も、おそらく嫌になってきた彼も)してて、「ここはいいけどここは嫌い」が入り乱れてる。それが集まって考え方を押し付け合うんじゃなくて、「だったらお互いの嫌なところを全部なおして、それぞれの好きなところを活かそう」となる。いいね。
CIの実装が固定されたものだと考えちゃうと、立場の違いで意見が分かれてしまうけど、ようするに求めているのはみんな共通で、その答えはKohanaプロジェクトの形をしているんだなと思う。あとはPHP5.2でなければ、なんだけどね。

そもそもが、初めてのサーバに入っている既存のPHP(着手時点で4か5かの情報も信用できない)で、完全に環境を再現してないマシンでテストしたものをデプロイしなきゃならない仕事にすら、フレームワーク(ていうかフロントコントローラと実用ライブラリ集)を持ってこれるかも、というのが発端なもんで、やっぱり、CIの「汚くても動くことが優先」なスタイルでしばらくがんばってみる。

*1:「ユーザ入力がmethod=POSTなフォームとは限らない」ということからか、バリデーションエラーメッセージをタグで囲んでくれなさそうです。だったら、「""でないときのみタグで囲む」ようなビュー用ヘルパ関数は標準パッケージにあるのかな。