Zend Framework 2 – Comment utiliser une vue / layout d’un module différent que celui où vous vous trouvez actuellement

Nous allons utiliser comme base l’exemple du ZendSkeletonApplication qui se trouve être le getting started fournit par Zend Framework 2 sur leur site ou directement sur github.

Vous pouvez constater que vous avez un dossier module et dans lequel vous avez Application (ZendSkeletonApplication/module/Application/)

Dans le dossier src puis Application et ensuite Controller vous avez l’IndexController (ZendSkeletonApplication/module/Application/src/Application/Controller/)
Voici un exemple de mon IndexController:

La partie qui est importante est:

En gros, on définit une nouvelle vue s’appelant « view » qui nous servira de base.
Ensuite nous définissions une nouvelle vue qui s’appelle $loginView.
On définit vers quel vue cette vue nous renvoie (quel template).
Dans notre cas, pmtime/index.

Mais qu’est-ce que pmtime/index? Comment le définit-on?

Très simple, dans le module.config.php se trouvant dans le dossier config de votre application (ZendSkeletonApplication/module/Application/config/)
Cherchez la partie « view_manager » (copie de la partie du mien ci-dessous):

Pour définir, le pmtime/index vu au dessus dans notre controleur il suffit de l’ajouter dans template_map ainsi que le chemin où se trouve le layout.
Dans mon cas j’ai une vue dans un module différent qu’application et cela donne:

Pour finir dans le controleur on assigne la vue à un nom de variable:

Pour afficher ensuite cette vue c’est très simple.
Par défaut, l’application va afficher l’index.phtml de l’application (ZendSkeletonApplication/module/Application/view/application/index/)
Voici mon index.phtml ci-dessous:

Pour afficher dans l’index.phtml la vue de mon autre module il me suffit de faire

Puisque j’ai assigné à ma variable login la vue.

Et voila, tout devrait fonctionner, si vous avez des questions suite à ce petit bout de tuto. n’hésitez pas.

2 réflexions au sujet de « Zend Framework 2 – Comment utiliser une vue / layout d’un module différent que celui où vous vous trouvez actuellement »

  1. Bonjour,

    Merci pour ce tuto. C’est exactement ce que je recherchais.

    Je testes de suite cette méthode et je reviens vers vous si nécessaire.

    Encore merci

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *


Time limit is exhausted. Please reload CAPTCHA.