|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2010 Messages : 67 ![]() |
Bonjour,
Dans une application on a souvent besoin dans une vue de faire apparaitre un élements provenant d'une méthode d'un autre controller. Sous cakePHP on utilise les "elements" qui permettent de faire ça... Comment faut il faire avec Zend pour arriver au résultat souhaité ? |
|
|
00
|
|
|
#2 |
![]() ![]() Loïc Développeur Web Inscription : février 2011 Messages : 678 ![]() |
Un exemple serait beaucoup plus parlant pour expliquer ce que tu souhaites sans cela il est dur de comprendre
|
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2010 Messages : 67 ![]() |
Par exemple lorsque je visualise la vue "liste" du controller "recette" je voudrai que dans une colonne du design apparaisse également le résultat de la méthode "lastArticles" du controller "article"
|
|
|
00
|
|
|
#4 |
![]() ![]() Loïc Développeur Web Inscription : février 2011 Messages : 678 ![]() |
Tu peux utiliser les vues partiels si tu le souhaite
|
|
|
00
|
|
|
#5 | ||||||
|
Membre régulier
![]() Inscription : août 2008 Messages : 402 ![]() |
ça fonctionne comme ça ?
Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#6 |
![]() ![]() Loïc Développeur Web Inscription : février 2011 Messages : 678 ![]() |
Tu devrais tester avant de mettre ce genre de chose
|
|
|
00
|
|
|
#7 | |
![]() ![]() Ingénieur développement logiciels Inscription : mai 2002 Messages : 3 725 ![]() |
La vraie question est pourquoi tu veux faire ça...
Souvent ce type de demande révèle une mauvaise pratique. Citation:
Rien n'empêche par contre de factoriser ton code de vue dans un phtml dédié, et de l'appeler dans chacune des vues où c'est nécessaire par un simple : Code php :
echo $this->render("derniers-articles.phtml"); Le problème c'est que souvent les développeurs écrivent la logique métier dans le contrôleur, au lieu de le faire dans le modèle. C'est ainsi qu'on se retrouve avec une application difficilement maintenable, avec du code mal placé et souvent dupliqué, et qu'on a besoin d'appeler des méthodes de contrôleur dans un autre... Le modèle est souvent perçu comme une simple couche d'accès à la base de données, alors qu'en fait c'est bien plus que cela. C'est tout l'intérêt de l'objet : embarquer la logique dans les objets métier, pas seulement traiter la persistance. Bref, la bonne réponse à ta question est de refactoriser ton code pour ne pas avoir à faire ce genre d'appel, qui n'a pas vraiment de sens Un contrôleur doit se contenter de jouer le chef d'orchestre :
__________________
Tutoriels sur les UPS, e-commerce, PHP, critiques de livres... Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles. Je n'ai rien à voir avec la société www.ovh.com ! |
|
|
|
00
|
|
|
#8 |
![]() ![]() Loïc Développeur Web Inscription : février 2011 Messages : 678 ![]() |
En effet et sur Zend je dirais même plus au niveau des rowClass et non au niveau de DbTable, car la rowClass représente un seul objet.
|
|
|
00
|
|
|
#9 | |
![]() ![]() Ingénieur développement logiciels Inscription : mai 2002 Messages : 3 725 ![]() |
Citation:
Typiquement tu peux avoir besoin d'une méthode de sélection fine d'un ensemble de lignes (= objets), dans ce cas la méthode se trouvera bien au niveau de l'objet repository (DbTable), et pas l'objet Row
__________________
Tutoriels sur les UPS, e-commerce, PHP, critiques de livres... Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles. Je n'ai rien à voir avec la société www.ovh.com ! |
|
|
|
00
|
|
|
#10 |
![]() ![]() Loïc Développeur Web Inscription : février 2011 Messages : 678 ![]() |
En effet mais je parlais et je pensais que toi aussi, des methodes qui s appliquent aux objet donc a un row et non pas un rowset
|
|
|
00
|
|
|
#11 | |
|
Membre régulier
![]() Étudiant Inscription : juin 2008 Messages : 70 ![]() |
Citation:
par contre, si tu doit appeler ta méthode "lastArticles" dans une autre action, je te déconseille ce genre de méthodes qui vont, comme dit précédemment rendre beaucoup moins lisible ton code. Et dans ce cas, comme le dis ovh, il vaudrait mieux faire appel à tes deux modèles "articles" et "recettes" dans ton contrôleur. Mais le problème qui va apparaître c'est que tu vas faire des appels au modèle "articles" dans ton contrôleur "recette"... Peut-être faudrait-il renommer tes contrôleurs pour plus de cohérence ? |
|
|
00
|
|
|
#12 | |
![]() ![]() Ingénieur développement logiciels Inscription : mai 2002 Messages : 3 725 ![]() |
Citation:
Un contrôleur n'est pas obligé de n'utiliser qu'une seule classe métier, encore heureux
__________________
Tutoriels sur les UPS, e-commerce, PHP, critiques de livres... Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles. Je n'ai rien à voir avec la société www.ovh.com ! |
|
|
|
00
|
|
|
#13 |
|
Membre régulier
![]() Étudiant Inscription : juin 2008 Messages : 70 ![]() |
Complètement d'accord, je n’émettais que l'hypothèse d'un renommage de contrôleur car, de ce que j'en avais compris, son organisation actuel paraissait assez "crudienne" (un contrôleur par type de ressource) et non pas par page.
Mais, si mon message porte à confusion, je m'en excuse et ne peux que te citer : |
|
00
|
Copyright © 2000-2012 - www.developpez.com