到目前为止,在任何我们可以善意重用的开源项目下开发的最好的 PHP DAL(数据抽象层)是什么?
我发现很难为我的应用程序选择一个充分支持对大多数常见数据库系统(MySQL、PostgreSQL、MSSQL、Oracle 等)的抽象的 DAL,并且是:
- 广泛测试,
- 具有良好的接口(可读的方法名称,良好的参数传递策略),
- 快速地,
- 轻的,
- 提供缓存(例如与 Memcache 集成或支持良好的缓存机制),
- 开源许可证,
- 至少应该有 MySQL/MySQLi 的适配器(基于非 PDO)
一些需要考虑的库:
- PHPBB DAL http://wiki.phpbb.com/Database_Abstraction_Layer
- Joomla DAL http://api.joomla.org/Joomla-Framework/Database/JDatabase.html
- ADOdb http://phplens.com/adodb/
- Zend_db
- Doctrine(下行仅支持 PDO_*)
- 在任何开源项目/分支下使用/开发的任何其他 DAL
请不要考虑:
- PDO
- 所有 ORM(但是,Doctrine 似乎除了 ORM 之外还有一个单独的 DAL)