2010-05-12 15 views
2

La dernière fois que j'ai travaillé avec Zend_Db je me souviens que j'avais l'habitude d'écrire des requêtes SQL manuellement. J'ai cherché une application ORM, mais comme j'ai lu quelque chose comme Zend_Db est aussi capable de le faire, j'ai commencé à l'essayer, mais je ne trouve ni un bon tutoriel ni une bonne documentation. J'ai lu quelque chose à propos de Lake Gateway Pattern et de la classe ModelMapper mais je n'arrive pas à le comprendre.Comment utiliser Zend_Db sans requêtes SQL?

Quelqu'un peut-il briller mon chemin? : P

Répondre

3

Tout ce dont vous avez besoin pour commencer est disponible dans le Zend Framework Reference Guide on Zend_Db.

Zend_Db_Table est un TableData Gateway. Il a des capacités ORM très limitées. Principalement ceux-ci proviennent de la possibilité de définir relationships entre les tables. Les ensembles de lignes dépendants peuvent être lazy loaded avec finder methods on the Zend_Db_Row instances renvoyé par une requête à un TDG. Cela ne vous obligera pas forcément à écrire du SQL, mais moins de SQL. Sous le capot, Zend_Db_Table utilise une sous-classe de Zend_Db_Select pour générer les requêtes SQL via un Fluent API. Voir le guide de référence sur how to work with TDGs et comment extraire des données connexes.

Le ModelMapper auquel vous faites référence est un autre modèle, appelé DataMapper. Ceci est généralement utilisé lorsque vous travaillez avec un Domain Model. Un DataMapper gère le impedance mismatch qui se produit généralement lorsque les objets Domaine et leur représentation persistante ne correspondent pas. Il n'y a pas de recette standard pour cette classe. Selon la quantité de discordance, DataMapper peut devenir assez complexe. Les efforts pour créer un generic mapper for ZF étaient discontinued in favor of integrating Doctrine with ZF. Mais un example of a custom DataMapper peut être trouvé dans le guide de référence.

Vous pouvez look around SO for PHP ORM's, en particulier cette question:

+2

+1 Il y a quelques beaux articles disponibles en ligne qui expliquent comment vous pouvez intégrer Propel ou Doctrine dans vos applications Zend-à-dire. http://ruben.savanne.be/articles/integrating-zend-framework-and-doctrine, http://devzone.zend.com/article/184 – wimvds

+0

wow! Je ne m'attendais pas à tout ça ... thx !! –