2010-09-03 6 views
0

J'ai une mise en page qui fonctionne bien. Cette disposition contient plusieurs partiels, qui affichent des publicités, une colonne latérale un diaporama, etc. Tout cela est susceptible de changer en fonction de la page (module/contrôleur/action) du site sur lequel vous vous trouvez.Zend Framework - Comment mettre en œuvre des partiels qui contiennent de la logique

Quelle est la meilleure façon de le faire correctement? Dans le passé, j'ai assigné des variables à ma vue à l'intérieur de mes contrôleurs, celles-ci sont ensuite transmises au partiel qui affiche alors le bon diaporama ou la bonne publicité. Cela semble moche et pas tout à fait correct pour une application MVC.

Est-ce que quelqu'un a d'autres méthodes pour le faire?

+0

Avez-vous des publicités/diaporamas complètement différents pour chaque action, ou voulez-vous simplement pouvoir remplacer un défaut dans certains cas? –

+0

Le code HTML sous-jacent est le même pour chaque diaporama/publicité. Mais le contenu envoyé serait différent, par ex. une URL d'image différente, lien URL. Mais pour la colonne latérale, le contenu peut être complètement différent, par ex. pour un contrôleur il peut contenir une liste d'amis, ou un autre contrôleur une liste de notifications et pour un autre un formulaire de connexion. –

Répondre

1

Les partiels sont juste un autre script de vue. Mon conseil est: nouveau mettre votre logique dans les scripts de vue. Votre peut stocker la logique: (. Rappelez-vous, que vous pouvez créer vos propres modèles, étendre ou non l'extension des modèles de base de données de base, par exemple déshydrateurs de données)

  • modèles
  • aides de vue (avec les paramètres)
  • services (en fonction des modèles, des modèles de retour)
  • combinaison de ce qui précède

Ensuite, utilisez l'aide de vue ou transmettre les données prêt (modèle) à différents partials. Astuce: L'injection de dépendances est une bonne chose.

+0

Tous les bons points. Voir Helpers sonne comme le meilleur pour moi en ce moment –

Questions connexes