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.15. Résolution des vues (View Resolver)

Lorsque Zend Framework a le nom de la vue, il ne lui reste plus qu'à déterminer le chemin absolu du fichier .phtml correspondant. Ceci est également appelé la résolution des vues (view template resolving). Les vues sont résolues avec la classe spéciale de Zend Framework appelée le view resolver.

Dans ZF3, il y a deux types de résolutions en plus : TemplatePathStack et TemplateMapResolver. Les deux résolveurs prennent un nom de vue en entrée et retourne le chemin du fichier à afficher. Le nom de la vue est généralement composé du nom du module suivi du nom du contrôleur suivi du nom de la vue, comme "application/index/about" ou "application/index/index". Une exception pour "layout/layout", qui n'inclut pas le nom du module.

Les paramètres d'affichage du résolveur sont stockés dans votre fichier module.config.php sous la clé view_manager :

<?php
return [
    //...
    
    'view_manager' => [
        //...
        
        'template_map' => [
            'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
            'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
            'error/404'               => __DIR__ . '/../view/error/404.phtml',
            'error/index'             => __DIR__ . '/../view/error/index.phtml',
        ],
        'template_path_stack' => [
            __DIR__ . '/../view',
        ],
    ],
];

Vous pouvez voir que les paramètres du template map resolver sont stockés sous la clé template_map. Par défaut, il existe plusieurs vues "standard", qui sont résolus de cette façon : la vue de la page index, le template (nous en parlerons dans Apparence et Layout) et les vues d'erreur (nous en parlerons un peu plus tard). Ces pages standard sont définies avec ce type de résolveur car c'est rapide.

Les paramètres du template path stack resolver sont stockés sous la clé template_path_stack. Vous pouvez voir que ce résolveur recherche vos scripts de vue dans le répertoire "view" de votre module. C'est pourquoi nous pouvons simplement mettre le fichier about.phtml dans ce répertoire et que ZF trouvera automatiquement le fichier.

Le template map resolver et le template path stack resolver fonctionnent ensemble. Tout d'abord, le template map resolver essaie de trouver la vue du layout dans son tableau et si la page n'est pas trouvée, le template path stack resolver est exécuté.


Top