Introduction

Dans une application utilisant les couches Zend Framework MVC, vos scripts de vue ne seront que des blocs de HTML concernant l'action demandée. Par exemple, une action "/user/list" mènerait vers un script de vue itérant sur les utilisateurs en présentant une liste:

  1. <h2>Utilisateurs</h2>
  2. <ul>
  3.     <?php if (!count($this->users)): ?>
  4.     <li>Pas d'utilisateurs</li>
  5.     <?php else: ?>
  6.     <?php foreach ($this->users as $user): ?>
  7.     <li>
  8.         <?php echo $this->escape($user->fullname) ?>
  9.         (<?php echo $this->escape($user->email) ?>)
  10.     </li>
  11.     <?php endforeach ?>
  12.     <?php endif ?>
  13. </ul>

Comme c'est juste un bloc de code HTML, ce n'est pas une page valide, il manque le DOCTYPE et la balise ouvrante HTML puis BODY. Quand seront-ils crées?

Dans les anciennes versions de Zend Framework, les développeurs créaient souvent des scripts de vue "header" et "footer" qui servaient à cela. Ca fonctionnait certes, mais c'était difficile à refactoriser, ou pour appeler du contenu provenant de plusieurs actions.

Le pattern » Two-Step View solutionne beaucoup des problèmes indiqués. Avec, la vue "application" est crée en premier, puis injectée dans une vue "page" ainsi présentée à l'utilisateur client. la vue de page peut être imaginée comme un template global ou layout qui décrirait des éléments communs utilisés au travers de multiples pages.

Dans Zend Framework, Zend_Layout implémente le pattern Two-Step View.

blog comments powered by Disqus