PHP勉強会@東京の資料

昨日開催されたPHP勉強会@東京で使った資料です。

http://kunit.jp/docs/PHPTokyo7.pdf

このPDFで説明しているように、現在Wikiで公開しているActiveGateway alpha1では「find_all」というようにRoRActiveRecord同様メソッド名が「_」つなぎになっているのを、次のリリースから「findAll」というようにcamelCaseにします。

次のリリースでは以下のものに対応しようと思っています。(ActiveRecordの機能を随時もりこむ+αという感じです)

  • tableInfoで取得しているフィールド情報をキャッシュできるようにする
  • クエリの結果をキャッシュできるようにする
  • SQL文およびブレースフォルダに対する値をログに落とすようにする(デバッグを容易にするため。もちろんレベルわけして出る量を調整できるようにします)
  • destroyやdeleteを実行したときに「dependent => true」と定義されている関連テーブルがあった場合、連鎖して削除するようにする
  • create_at/create_on/update_at/update_onというフィールドを準備しておいたら、自動的に新規作成時間、更新時間がはいるようにする
  • eachメソッドでの取得で全件まとめて取得だけではなくて、指定した件数だけ先読みしておくようなことを可能とする
  • データ保持用のクラスを別途準備すればstdClassの代わりに使えるようにする。(そこにロジックを書くことができるようになる。そうするとActiveRecordパターンになる)
  • update/deleteメソッドの前後にフックポイントを準備する
  • delete_at/delete_onというフィールドがある場合、deleteメソッドを発行しても論理削除しかしないようにする(つまり削除日時を登録するだけ)。論理削除が成り立つために、delete_at/delete_onがある場合はfind系メソッドも「delete_at is null」というような条件を自動的につけるようにする。
  • テーブルの関連付けで「inner_join => true」としておけば、INNER JOINしたものを発行するようにする(alpha1は別々にSQL文が発行される)

他にもこういうのがあるとなーというのがあればツッコミよろしくお願いします。