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 moduleApplication
aura par défaut la vueapplication/index/about.phtml
.
Si votre nom de contrôleur ou d'action se compose de plusieurs mots en camel-case (comme
UserRegistrationController
ouregistrationStep1Action
), 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).
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.
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.