Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-05-2014 10:32:28

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

MVC: Questions couche service + divers

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:


Code:

[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:

Code:

[lang=php]
return new ViewModel([
 'valueA' => $myModel->getValueA()
 'valueB' => $myModel->getValueB()
]);

plutôt que

Code:

[lang=php]
return new ViewModel([
 'model' => $myModel
]);

Voila pour le moment  smile

Hors ligne

 

#2 29-05-2014 12:49:05

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

Re: MVC: Questions couche service + divers

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 wink
3) tu peux faire les 2

Hors ligne

 

#3 29-05-2014 15:24:34

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: MVC: Questions couche service + divers

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 smile
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

 

#4 29-05-2014 22:43:39

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

Re: MVC: Questions couche service + divers

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

 

#5 30-05-2014 10:54:39

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: MVC: Questions couche service + divers

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

 

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