Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Salut tout le monde,
J'ai bien compris que en MVC, c'est une grosse erreur de placé du travail métier dans le controller (ouuuh vilain!!).
Il nous faut donc une couche service, qui suis une structure qui varie selon les techniques et besoins de chaqu'un.
Dans le controlleur, on ce contente donc de faire appel a cette couche...
1er Questions:
Je lit un peut partout que le getServiceLocator dans le controller est une erreur et qu'il serra supprimer dans zf3.
Mais comment faire appel a la couche service, sans accès a une instance du service manager? :s
2eme questions:
Que faire du travail récurant relatif a la vue? par exemple tout simplement:
[lang=php] $childView = new ViewModel(); $childView->setTemplate('partial/sous-vue01); $view = new ViewModel(); $view->setTemplate('une/autre/vue); $view->addChild($childView, 'childView');
Il me semble que c'est le travail qu'on incombe généralement au controller, mais voila, une "sous vue" ou "vue partiel" peut être appeler depuis plusieurs controller différent, je place donc sa dans un service pour des raison pratique. Est-ce correct? (remarque sa me rapelle se que font les formulaire ^^)
3eme Questions:
Est-ce une bonne pratique de passé les models tel quel a une vue?? Ou est-il plus correct que le conroller transforme les donné de la couche model en variable et tableau?
C'est a dire:
[lang=php] return new ViewModel([ 'valueA' => $myModel->getValueA() 'valueB' => $myModel->getValueB() ]);
plutôt que
[lang=php] return new ViewModel([ 'model' => $myModel ]);
Voila pour le moment
Hors ligne
Salut,
1) en utilisant une fabrique pour instancier ton contrôleur, dans la fabrique tu as accès au service locator et tu peux donc lui injecter tes services.
2) tu peux faire un plugin, c'est fait pour ça
3) tu peux faire les 2
Hors ligne
salut,
1: rho bin oui j'y avait pas pensé x)
2: Rho, je vient de regarder les plugins, sa a l'air génial! J'ai plus qu'a lire la doc
3: mais niveau "best pratice", la premier version est mieux non? en MVC, dans la théorie, la vue ne devrais rien connaitre de la couche model non?
j'en rajoute une ^^ :
4: y a t'il un danger a injecter le service manager dans un service via sa fabrique? :p ou vaut il mieux lui injecter que les service qu'il peut avoir besoin?
Hors ligne
Dans la théorie oui la vue n'est pas censée connaitre la couche model donc il faudrait faire des objets "métiers" sauf qu'il me semble avoir vu quelque part que doctrine conseillait d'utiliser les modèles dans la vue plutôt que de créer des objets métier. (Faudrait que je retrouve ce qui a été dit à ce sujet ça date un peu ^^).
Si tu injectes le service manager ça n'a pas d'intérêt d'injecter tes services vu que t'y a accès via le service manager et du coup tu te retrouves confronté au même problème que son utilisation dans les contrôleurs. Le but c'est d'injecter que ce dont il a besoin.
Hors ligne
ooooookkkkkkaaay!!
Bon voila qui est plus clair, même si je l'avait déduit on à la main plus sur quand on a la confirmation ^^.
Merci!
Je reviendrai sur ce post si j'ai d'autre question si vous le permettez.
Hors ligne
Pages: 1