如何在没有SQL查询的情况下使用Zend_Db?
上次我使用Zend_Db时,我记得我曾经手动编写SQL查询。我一直在寻找一些ORM应用程序,但是,因为我读了类似Zend_Db的东西也能够这样做,所以我开始尝试,但是我找不到一个好的教程解释它或者一个很好的文档。如何在没有SQL查询的情况下使用Zend_Db?
我读了一些湖网关模式和ModelMapper类,但我无法弄清楚。
有人能照耀我的路吗? :P
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处理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,尤其是这样一个问题:
+1有解释怎么会在你的Zend应用集成,即波轮或学说一些不错的文章在网上提供。 http://ruben.savanne.be/articles/integrating-zend-framework-and-doctrine,http://devzone.zend.com/article/184 – wimvds 2010-05-12 08:19:01
哇!我没有料到所有的东西.. thx! – 2010-05-12 16:38:24