Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-06-2015 09:13:16

RomainG
Membre
Date d'inscription: 10-06-2015
Messages: 65

TableGateway - Zend\Db\Sql que choisir ?

Bonjour à tous,

pour mon premier post sur le forum, je souhaitais me présenter rapidement. Je m'appelle Romain et je découvre depuis peu ZF2. Plutôt habitué à CakePHP, j'ai l'obligation de me lancé dans ZF2 pour le boulot.
En effet, mon supérieur souhaite refondre totalement l'application qu'ils ont développé avec ZF1 pour passer à ZF2.
Malheureusement pour moi, je ne connais ni ZF1, ni ZF2. J'ai donc effectué les différents tutos proposés sur la doc officielle pour comprendre la logique de ce framework. J'ai également lu en large et en travers la doc...

Mais, je me retrouve à avoir pleins de questions, notamment sur le TableGateway et le Zend\Db\Sql.
D'après ce que j'ai pu comprendre, le TableGateway représente un objet d'une des tables de la BDD alors que le Zend\Db\Sql serait plus propice pour effectuer des requêtes SQl (si je me trompe, n'hésitez pas à me corriger !).

Oui mais voila... Dans quelle situation utiliser l'un plutôt que l'autre ? Peut-on les utiliser ensemble ? Est-ce que la structure de notre application sous ZF1 peut déterminer le choix d'utiliser l'un ou l'autre ?

Il me semble que j'ai lu sur internet qu'il n'était pas recommandé d'utiliser le TableGateway si on avait des liaisons entre les tables (ce que l'application possède sur presque toutes les tables) et qu'il fallait mieux passer par Zend\Db\Sql... (rumeur urbaine ?)

Je tiens à préciser que nous ne souhaitons pas utiliser Doctrine 2 (dommage !) afin de réduire le temps de migration entre les deux framework (apprentissage de Doctrine pour tous les dévs).

Merci d'avance pour votre lecture et vos réponse !

Passez une bonne journée.

Romain

PS : j'espère avoir poster au bon endroit sur le forum...

Dernière modification par RomainG (10-06-2015 09:13:56)

Hors ligne

 

#2 10-06-2015 09:22:21

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: TableGateway - Zend\Db\Sql que choisir ?

Bonjour,

Pour réduire le temps de migration, il faut justement utiliser doctrine2, particulièrement dans la cas de tables avec liaisons. Du moins c'est mon avis perso, mais avec la génération des modèles à partir de la DB c'est instantané.

Pour faire tes requêtes avec jointure, Zend\Db\Sql est quasi obligatoire. Zend Table Gateway permet seulement un accès assez direct à une table, c'est tout.

Hors ligne

 

#3 10-06-2015 11:28:50

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: TableGateway - Zend\Db\Sql que choisir ?

Hey, il y a des truc cool avec Zend\Db\Sql et Zend\Db\TableGateway\TableGateway :

Code:

[lang=php]
use Zend\Db\TableGateway\TableGateway;
use Zend\Db\Sql\Select;
$artistTable = new TableGateway('artist', $adapter);

// search for at most 2 artists who's name starts with Brit, ascending
$rowset = $artistTable->select(function (Select $select) {
     $select->where->like('name', 'Brit%');
     $select->order('name ASC')->limit(2);
});

Du coup le mieux c'est d'utiliser les deux wink
Je te renvois sur la doc : http://framework.zend.com/manual/curren … teway.html

Dernière modification par flobrflo (10-06-2015 11:29:18)

Hors ligne

 

#4 10-06-2015 11:35:18

JGreco
Administrateur
Date d'inscription: 22-12-2012
Messages: 432

Re: TableGateway - Zend\Db\Sql que choisir ?

Je plussoie Théocrite, Doctrine permet de faciliter justement tout ce qui est jointure etc..

D'autre part pour tout ce qui est migrations de Zf1 à Zf2 aucune solutions simple n'existe, les framework sont complètement différents, toutefois une partie de la documentation du framework sous github en parle, si jamais tu ne l'a pas vue voici un lien :
https://github.com/zendframework/zf2-do … /migration

Peut être que tu y trouveras des informations intéressantes.

Pour ce qui est de Doctrine et son apprentissage, c'est un coup en temps au départ c'est sur, mais ce temps sera peut être pondéré par la vitesse de la migration gagné plutôt qu'en passant par les modules Zend\DB et Zend\Sql.


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#5 10-06-2015 12:05:06

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: TableGateway - Zend\Db\Sql que choisir ?

Salut, pareil que les autres. Personnellement je n'ai jamais utilisé Zend\DB et Doctrine est plutôt simple d'utilisation la doc est bien foutu.
En terme d'apprentissage t'as pas besoin de faire de SQL donc encore plus simple pour les dev. Le but de doctrine (comme hibernate puisque doctrine est clairement inspiré d'hibernate) est de permettre à des développeurs ne connaissant pas SQL d'en faire.

Hors ligne

 

#6 10-06-2015 13:08:01

RomainG
Membre
Date d'inscription: 10-06-2015
Messages: 65

Re: TableGateway - Zend\Db\Sql que choisir ?

Merci à tous pour vos réponses !
Je vais voir avec les autres devs pour utiliser Doctrine...

Pour ce qui est de l'apprentissage et du SQL, cela ne pose pas de problème dans le sens où toutes les requêtes (ou presque) faites sous ZF1 ont été faite avec le Zend_Db_Select à l'époque.
J'avoue que pour ma part, je serais tenté d'utiliser Doctrine pour sa simplicité d'utilisation !

Si j'ai d'autres questions, je reviens vous voir.

Romain

Hors ligne

 

#7 10-06-2015 13:33:19

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: TableGateway - Zend\Db\Sql que choisir ?

Et bien au pire tu peux aussi faire du SQL natif avec Doctrine et mapper tes résultats dans un objet ou un tableau si tu préfères wink.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages