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のようなこざっぱりしたものがなかなか見つかりません(抽象的な表現ですみません)。

というわけで自分で作ることにしました(前フリ長い)。スパゲッティなコーディングの回避を支援しつつ、とにかく機能を削る方向です。

長くなったので詳細は次のエントリにて。

使用可能なタグ <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>