PHP用のMVCフレームワーク
PHPで開発するものというと、大半はWebアプリケーションということになります。そのWebアプリケーションの保守性を高めるためにMVCフレームワークの導入が検討されるわけですが、ここでとんでもない現実が待ち構えています。それは「既存のPHP用MVCフレームワークは、Java用フレームワークの模倣でしかない」ということです。
それらフレームワークの特長というと、
- ページ遷移がXMLや設定ファイルで集中管理できる
- やり過ぎなくらいにクラス化されている
- HashMapやArrayListのようなJavaライクなクラスがある
- Jakarta Commonsのパクリみたいなものまで付いてくる
といった点が挙げられますが、私は声を大にして「お前らアホか。PHPごときに何を期待しとるんじゃ!!」と言いたい。いちいちXMLをパースしたり、奇妙な配列の入れ子でフローを定義したり、貧弱なOOP環境でJavaの真似をしてみたり、泣けてきます。
他にも色々と引っかかる点はあるのですが、これらのフレームワークで一番気になるのが「サイト全体をPHPで作成する」ことを前提としているフシがあること。そりゃあ、StrutsやMaverickなんかはServletコンテナがバックについてますから、そういう方針でもいいと思いますが、PHPの場合はもっと小規模な案件のほうが多いわけで、「既存サイトに追加するBBSとアンケートシステムをPHPでお願いね」なんていう時にファイル構成まで決められたフレームワークを採用するわけにはいきません。
小・中規模のサイトの一部分をPHPで開発する際に保守性を上げるためには、
- 既存の環境・ファイル構成と衝突しない
- 憶えることが少ない
- PHPのメリットを損なうほどのHeavyweightではない
- ページ単位での開発にフォーカスしている
といった条件を満たすフレームワークが欲しいところです。しかし、フレームワーク開発者という人種はよほど完璧主義者ばかりなんでしょうか?Windowsみたいなフレームワークばかりで、BeOSのようなこざっぱりしたものがなかなか見つかりません(抽象的な表現ですみません)。
というわけで自分で作ることにしました(前フリ長い)。スパゲッティなコーディングの回避を支援しつつ、とにかく機能を削る方向です。
長くなったので詳細は次のエントリにて。
