A free and open-source book on ZF3 for beginners

Translation into this language is not yet finished. You can help this project by translating the chapters and contributing your changes.

4.14. Nommage des vues

Lorsque vous renvoyez des données avec le conteneur de variables ViewModel à partir de l'action de votre contrôleur, Zend Framework sait quel est le nom du fichier de vue correspondant. Par exemple, pour la méthode aboutAction() de votre IndexController, ZF3 utilise automatiquement la vue about.phtml.

ZF3 détermine le nom de la vue en fonction du nom du module, du contrôleur et de l'action. Par exemple, l'action IndexController::aboutAction() appartenant au module Application aura par défaut la vue application/index/about.phtml.

Si votre nom de contrôleur ou d'action se compose de plusieurs mots en camel-case (comme UserRegistrationController ou registrationStep1Action), la vue correspondante sera application/user-registration/registration-step-1.phtml (les noms camel-case sont convertis en minuscules et les mots sont séparés par des tirets).

4.14.1. Modifier le nom de la vue par défaut

La classe ViewModel peut également être utilisée pour remplacer la résolution de la vue par défaut. En fait, la classe ViewModel est plus qu'un simple conteneur de variables. Elle permet notamment de spécifier quelle vue doit être utilisée pour le rendu de la page. Le résumé des méthodes fournies à cette fin est présenté dans le tableau 4.8.

Table 4.8. Méthodes de la classe ViewModel pour définir et récupérer le nom de la vue
Nom de la méthode Description
setTemplate() Définit le nom de la vue.
getTemplate() Renvoie le nom de la vue.

Pour définir le nom de la vue, vous utilisez la méthode setTemplate(). La méthode getTemplate() renvoie le nom de la vue actuellement définie.

L'exemple de code suivant montre comment vous pouvez appeler la méthode setTemplate() à partir de la méthode indexAction() de la classe IndexController pour forcer ZF3 à utiliser le fichier de vues about.phtml pour le rendu de la page d'accueil au lieu du fichier index.phtml :

// L'action Index affiche la page d'accueil de votre site.
public function indexAction() 
{    
	// Utilisation d'une vue différente pour le rendu de la page.
	$viewModel = new ViewModel();
	$viewModel->setTemplate('application/index/about');
	return $viewModel;
}

Dans le code ci-dessus, nous avons créé une instance de la classe ViewModel comme à l'habitude (ligne 5).

Ensuite, nous avons appelé la méthode setTemplate() sur l'objet vue (ligne 6) et avons passé le nom de la vue à utiliser en tant qu'argument. Le nom de la vue est en fait le chemin relatif vers le fichier about.phtml sans l'extension du fichier.

Enfin, nous avons renvoyé l'objet vue depuis l'action (ligne 7).

L'appel de la méthode setTemplate() dans chaque méthode d'action est facultatif. Si vous ne le faites pas, ZF3 déterminera automatiquement le nom de la vue en concaténant le nom du module en cours, le nom du contrôleur et le nom de l'action.


Top