PHP フレームワーク構想

最近色々なフレームワークを触っているのですが*1、どれもしっくりこないので、自分で作ってみようと思います。

  • MVC モデル
  • PHP5 専用
    • もう PHP4 に対応する理由がない
  • フルスタック
    • でも M/V/C は疎結合。別々に使えるようにする
  • 設定ファイルは PHP
  • 配列は極力使用しない
    • CakePHP の Validation で心が折れかけたので
  • __set, __get は使用しない
    • 普通に setter/getter を書いてコード補完させる。typo のリスクを軽減させる。そのかわりジェネレータを作る
  • __call, __autoload は使う
  • プラグイン機構を採用
  • RESTful な URL
    • mod_rewrite を使用しなくても動くようにする
  • Validation は PHP コメントアノテーションを読み込んで自動実行
  • Model
    • あんまり凝ったものを作らない
    • PDO 一択
      • もう他はいらないと思う
    • MySQL/PostgreSQL 対応
      • アダプタが自作できるようにする。
    • DbUtils + insert/update/delete の SQL 自動生成。select は外だしされたファイルを読み込む感じ(Entity名_sql.phpとかいう規約を定める)
  • View
    • POHTML(でも拡張子は .php ) + binding する PHP ファイルの組み合わせ。Mayaa みたいな感じ。 id 属性でバインディング(title 属性がいいよな、と思いつつも一意制限ができないので id 属性で)
  • Controller
    • メンバ変数名 == リクエストパラメータ名の場合は自動でセッティング。ActionForm 相当は今のところ考えてない。
    • メンバ変数にアノテーション定義すると Validation が Action 実行前に動く
    • Controller に定義されている funciton 毎に Validation を実行するかどうかが設定可能

随時書き足していきます。
あ、あと、大事なこと。名前! なんて名前にしよう…。
今月ぼんやり設計して来年から本格的に書き始めよう。

*1:Ruby on Rails, CakePHP, ZendFramework等