03 août
Par Clément dans Tutoriels
Mots-clefs :Helpers, Layout, MVC, Tutoriel, Vue, Zend, Zend Framework, Zend_View

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 .
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à !
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.
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.
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.
« Tutorial : Créer une application avec le Zend Framework – #4 Explications sur les contrôleurs et sur le Routing | Créer des menus animés avec le plugin jQuery LavaLamp »
Aucun trackback
9 commentaires
leknoppix
10 août 2009 à 14:58
1Très bon tuto.
Merci
patson
13 août 2009 à 23:09
2Tres bon tuto … impatient d’avoir la suite du projet en tuto.
Chafik
6 septembre 2009 à 16:01
3Effectivement très bon tuto…
Aucun texte superflu, c’est court, clair et précis !
Merci, allons-y pour la suite
Gilles
17 février 2010 à 23:58
4Super clarté de ton explication. Ca fait plaisir parce se mettre tout seul à ZF sur son temps libre, c’est un peu relou.
Merci à toi.
20100
30 juin 2010 à 10:13
5Merci beaucoup
Ariden
5 septembre 2010 à 21:01
6Je suis tes tutos dans l’ordre, mais il n’est pas précisé dans quel dossier positionner le fichier partial.phtml dans l’instruction :
partial(’partial.phtml’, array(
‘helloworld’ => ‘Hello World’)); ?>
Merci d’avance
Zied
9 octobre 2010 à 9:47
7Bonjour
La traduction ne marche pas, rien n’est affiché : ni le texte du lien ni le lien dans le code source :
Voici comment je l’ai écrit:
<a href="link(’index’, ‘language’, null, array(’lang’ => ‘en’))?>» >translate(» english» );?>
<a href="link(’index’, ‘language’, null, array(’lang’ => ‘fr’))?>» >translate(» french» );?>
Zied
9 octobre 2010 à 9:50
8il manque le $ et le this – et > devant link et translate
Mael
27 octobre 2010 à 9:49
9Bonjour,
je me permets de préciser une chose, si vous avez une erreur du type:
Uncaught exception ‘Zend_View_Exception’ with message ’script ‘layout.phtml’ not found in path
Il vous faut préciser l’emplacement du fichier layout.phtml dans bootstrap.php (en dehors de la classe) comme ceci:
Zend_Layout::startMvc(array(’layoutPath’=> APPLICATION_PATH . ‘/views/layouts’));
Si la constante APPLICATION_PATH n’est déclarée nulle part, essayez d’indiquer le chemin « en dur» comme ceci:
Zend_Layout::startMvc(array(’layoutPath’=> ‘c:/votre/chemin/views/layouts’));
Laisser un commentaire
Devenir Fan de Dator.fr
Nuage de tags
Sponsors
Blogoliste
Blogs Amis
Derniers Posts
Derniers Commentaires
Les meilleurs sujets
Propulsé par WordPress