Dans cette partie, nous allons voir comment utiliser les layouts et les vues dans une application créer avec le Zend Framework. Ensuite nous regarderons les helpers de vues qui vont nous permettre de nous simplifier pas mal de choses .
Plan de l’épisode #05
- Les vues dans le Zend Framework.
- Le layout.
- Les helpers.
- Conclusions
Les vues dans le Zend Framework
Dans le Zend Framework, les vues représente des fichiers PHP mais doivent contenir le minimum de PHP.
Les vues présente du HTML de votre site, et nous avons vu que toute la partie logique de notre application se trouvait dans les contrôleurs.
Dans le Zend Framework, les vues se trouvent dans un dossier spécifique pour chaque contrôleur et ont des conventions de nommage.
Par exemple, prenons le contrôleur Index (IndexController) et l’action show (showAction), notre vue devras ce trouver dans le repertoire modules/frontend/views/index/ et devra se nommer de cette façon : show.phtml.
Nous allons voir un exemple avec un simple transfert de variable à partir d’une action vers une vue.
Dans notre IndexController, nous pouvons créer une action comme suivant :
public function showAction(){ $this->view->helloworld = "Hello World ! "; }
Ainsi, dans notre vue, nous pouvons récupérer cette variable très simplement en faisant :
<h1><?= $this->helloworld;?><h1>
Avec cette méthode, n’importe quelle variable est peut être envoyé d’une action à une vue.
Outre ces vues associés à une action, nous pouvons très bien afficher une vue partielle, c’est à dire qui n’est liée à aucune action mais qui est utiliser pour eviter de répéter tout le temps la même choses. Par exemple pour le Top 5 de nos bureaux.
Pour utiliser ces vues partielles, il vous suffit de vous mettre dans une vue associé et de lancer cette méthode :
<?= $this->partial('partial.phtml', array( 'helloworld' => 'Hello World')); ?>
Et votre vue partielle peut ressembler à cela :
<p><?= $this->helloworld ?></p>
C’est à chaque fois la même chose, donc pas trop de soucis à ce niveau là !
Le layout
Un layout est la partie qui englobe votre application. Dans toutes les applications, au fil des pages, des parties se répètent comme le header, le footer, une colonne …
Ce fichier est nommé layout.phtml, se trouve dans le dossier /applications/layouts et va permettre de créer l’architecture des parties fixes de notre application.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="shortcut icon" href="/favicon.ico" /> <?php echo $this->headTitle() ?> <?php echo $this->headScript() ?> <?php echo $this->headStyle() ?> </head> <body> <?php echo $this->layout()->content ?> </body> </html>
L’appel à $this->layout()->content, permet d’afficher les vues suivant le contrôleur et l’action.
L’appel à headTitle, headScript et headStyle permettent de changer le titre de la page et de charger des fichiers Javascript et CSS.
Ces trois méthode sont accessible à partir des vues en faisant par exemple:
$this->headTitle('Mon titre');
et à partir des actions :
$this->view->headScript()->appendFile('monfichier');
D’autres méthodes existent et je vous conseille d’aller lire la documentation avec la liste de ces méthodes.
Les helpers
Le Zend Framework fournit avec son composant Zend_View, des helpers qui vont permettre d’éviter de répéter plein de fois la même chose dans vos vues et layout.
Par exemple, je vais prendre le helper BaseUrl qui va retourne l’url de base de votre site. Nous allons l’utiliser dans notre vue pour faire un lien:
<a href="<?php echo $this->baseUrl(); ?>/register">Inscription</a>
Pas mal de helpers sont présents avec le Zend Framework et je vous conseille de regarder la documentation à ce sujet.
Conclusion
Vous avez du saisir maintenant avec quel simplicité nous allons manipuler les vues et les layouts dans notre application. Malgrès sa programmation par composant, le Zend Framework permet de garder un ensemble très structuré et robuste.