Creole、PDOを使ったO/Rマッピングライブラリ
symfonyについて調べていた際に知った、Creoleについて少し調べた。
簡単に要約すると、「CreoleとはPHP5用データベース抽象レイヤーで、JavaのJDBCのAPIにヒントを得ており、PEAR::DBやPEAR::MDB、ADOdbを取り込んでいる」とのこと。翻訳が間違ってる可能性もあるので、上記の公式サイトから引用しておきます。
Creole is a database layer for PHP5. It abstracts PHP's native db-specific API to create more portable code while also providing developers with a clean fully object-oriented interface based loosely on the API for Java's JDBC.There are a number of database abstraction packages for PHP. Creole draws from experience with several of these -- noteably PEAR::DB, PEAR::MDB, and ADOdb. Creole was created as a subproject of Propel to meet specific needs that none of the available abstraction layers were able to address in any satisfactory way.
実はPHP5.1系よりPHPはデフォルトでPDOをサポートしており、実はPDOを利用すれば、Creoleのようなデータベース抽象レイヤーは必要ないのではないかという気もしてくる。
色々調べてて見つけたのが以下の記事。
これを読む限り、PDOに簡単な抽象化させるようなものを作ればいいのではないかという気がする。PDOだとPHPネイティブなのだから、速度面からしても理想的な感じがする。
記事の一番最後のページにPDOを利用しているO/Rマッピングライブラリが挙げてありました。
- EZPDO » EZPDO
- Zend Framework
- Doctrine - PHP Data Persistence and ORM Tool
- Seasar - DI Container with AOP -
- 31tools.com : CBL ActiveRecord
※プロジェクトのトップページなので、後で直す。
ざっと一通り見たのですが、PDOで開発をするときの強い見方になるとは少し言いがたい感じ。
O/Rマッピング自体の本当の利便性がまだ理解できてないだけなのかもしれないのですが、このレベルであれば、SQLを直接実行できる方がシンプルに見えるし、SQL独自の旨味を使えるから、あまり積極的に使う気になれないですよね。うーん。