我最后一次使用Zend_Db时,我记得我曾经手动编写SQL查询。我一直在寻找一些ORM应用程序,但是,因为我读过类似Zend_Db的东西也能够这样做,我开始尝试它,但我找不到一个好的教程解释它或一个好的文档。
我读了一些湖泊网关模式和ModelMapper类,但我无法弄明白。
有人能照亮我的道路吗? :P
答案 0 :(得分:3)
Zend Framework Reference Guide on Zend_Db
中提供了入门所需的一切。
Zend_Db_Table
是TableData Gateway。它的ORM功能非常有限。主要是因为能够在表之间定义relationships。相关的行集可以是lazy loaded,并且通过查询返回到TDG的适当finder methods on the Zend_Db_Row
instances。这样做不一定会让你不编写SQL,而是编写更少的SQL。在幕后,Zend_Db_Table
使用Zend_Db_Select
的子类通过Fluent API构建SQL查询。请参阅how to work with TDGs上的参考指南以及如何获取相关数据。
您要引用的ModelMapper是另一种模式,称为DataMapper。这通常在使用Domain Model时使用。 DataMapper处理通常在Domain对象及其持久表示不匹配时发生的impedance mismatch。这个课程没有标准配方。根据不匹配的数量,DataMapper可能会变得相当复杂。创建generic mapper for ZF的努力是discontinued in favor of integrating Doctrine with ZF。但是参考指南中可以找到example of a custom DataMapper。
您可能想要look around SO for PHP ORM's,尤其是这个问题: