Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je développe actuellement une API pour mon site web et je me posais une petite question.
J'utilise à l'heure actuelle TableGateway pour récupérer mes objets dans mes mappers.
Vu que globalement je récupère des informaions en base de donnée et les renvoies en json, ne serait-il pas plus"optimisé" de ne pas construire les objets et de récupérer directement des tableaux depuis mes mappers pour construire le json?
A l'heure actuelle je récupère les infos en base, crée l'objet, le renvoi au controller qui crée le json. J'ai donc l'impression que l'étape "transformation en objet" ne sert pas à grand chose.
Hors ligne
Ta question m'étonne un peu. Elle sous-entend que tu ne fais que lire et restituer le contenu d'une base et donc que tu n'as pas de couche métier ou alors que tu es passé à côté du concept de POO.
Hors ligne
Sisi, j'ai une couche métier, elle se trouve dans mon controller.
Cependant, dans 90% des cas je peux faire ces opérations sur des tableaux, je n'ai pas besoin que mon mapper me renvoi un objet
Hors ligne
"Sisi, j'ai une couche métier, elle se trouve dans mon controller". On dira qu'on a rien entendu.
Bon.
Si tu fais de la POO, tout est objet.
C'est toi seul qui t'impose des "transformations".
Abandonne les tableaux (à ne pas prendre au pied de la lettre ).
Hors ligne
Je plussoie Bouks. Honnêtement ce n'est pas cette étape de transformation qui va impacter en performance. Surtout que le fait de transformer de permet d'effectuer une logique métier (par exemple, imagine que tu souhaites effectuer une opération de cryptage/décryptage dans ta couche métier).
Hors ligne
tagazok a écrit:
Sisi, j'ai une couche métier, elle se trouve dans mon controller.
Moi j'ai entendu :-)
C'est "mal": Le controller, en principe, ne doit pas contenir la logique métier.
Pourquoi sortir la logique métier des controllers? Tout simplement car il est possible que tu fasses des copier-coller de différents bouts de code métier dans tes actions. Si tu dois faire une modification sur ce bout de code métier, il te faudra le modifier à tous les endroits où tu as copier ce code...pas évident pour la maintenance :-)
Maintenant, ca va tu penseras à tout modifier, mais dans 6mois/1an, c'est pas certain.
Hors ligne
En fait c'est pas la seule chose. Dissocier les couches ça permet de pouvoir changer facilement des morceaux de code sans avoir à tout refaire de bout en bout. Comme par exemple retoucher uniquement la couche DAO : on souhaite pour X ou Y raison passer d'une base de données Mysql à SQL Server ou à une base LDAP. Il n'y aura à toucher uniquement à la couche DAO ou service mais pas la couche "contrôleur"
Hors ligne