Doctrineの2.0がまったく別物になってる
PHPのORマッピングフレームワークで、symfonyにも公式にサポートされることになったDoctrineですが、先日リポジトリをみてみたら全然別物になってました。
こっちが1.0のブランチ。
http://trac.doctrine-project.org/browser/branches/1.0/lib/Doctrine
んでこっちがトランク。つまり2.0へ向けて動いているほう。
かなり大幅に変わるようです。構想とかはWikiを見るのがいいかも。
とりあえずいくつかピックアップしてみると、
- コア部分がORM/DBAL層にわかれる
- DBALはデータベース抽象化レイヤー(DataBase Abstraction Layer)のこと
- Doctrine_RecordがDoctrine::ORM::Entityに
- Doctrine_TableがDoctrine::ORM::EntityManagerとDoctrine::ORM::EntityRepositoryに(?)
- ファインダメソッドは全てEntityRepositoryに
- EntityManagerがまだよくわからん
- Doctrine::ORM::ActiveEntityというActiveRecordライクなEntityのクラス追加
- TemplateやGeneratorがBehaviorクラスで抽象化される
- Doctrine_Queryがちょっとかわるっぽい?
- ここらへんもよくわからない
- PDOなくても動くっぽい
ちなみにnamespaceっぽく書いてますが、現在の実装ではまだDoctrine_ORM_Entityのような感じです。ただソースの方は、
<?php #namespace Doctrine::ORM; abstract class Doctrine_ORM_Entity implements ArrayAccess, Serializable
こんな感じで既にやる気マンマンみたいです。流石Doctrine、前衛的ですね。Doctrineの「BC(笑)」みたいな雰囲気、僕は好きです。一応名前空間の構造もまとめられているみたいです。
個人的に気になるのはActiveEntityクラスですね。どんな実装になるんだろう。find系はEntityRepositoryクラスにあるからそこに何かしらでつなぐと思われますが。
リリース予定は来年の9月1日っぽいです。今後もDoctrineから目が離せないですね!