如何在没有SQL查询的情况下使用Zend_Db?

时间:2010-05-12 05:25:30

标签: php zend-framework zend-db

我最后一次使用Zend_Db时,我记得我曾经手动编写SQL查询。我一直在寻找一些ORM应用程序,但是,因为我读过类似Zend_Db的东西也能够这样做,我开始尝试它,但我找不到一个好的教程解释它或一个好的文档。

我读了一些湖泊网关模式和ModelMapper类,但我无法弄明白。

有人能照亮我的道路吗? :P

1 个答案:

答案 0 :(得分:3)

Zend Framework Reference Guide on Zend_Db中提供了入门所需的一切。

Zend_Db_TableTableData 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,尤其是这个问题: