Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Autres composants
Autres composants Forum de support sur les autres composants de Zend Framework.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/08/2007, 05h16   #1
Invité de passage
 
Inscription : août 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 7
Points : 3
Points : 3
Envoyer un message via MSN à zonzon
Par défaut Zend_View + Templating + Smarty ?

Bonjour à tous,

je suis dans la phase exploratoire Zend Framework et c'est avec celui-ci que je me lance pour faire du MVC, un des avantages de ce framework est qu'il ne fait pas seulement que tu MVC, mais possède une panoplie de routines comme la gestion des date/heures, locales, ACL, Auth, etc....

Je suis en début de projet et je désire grandement bien démarer afin de ne pas avoir à tout recommencer dans quelques semaines. Mes questionnement et embêtements se situent au niveau de l'utilisation du module de génération du contenu (View).

Mon template est développé, et l'allure globale sera toujours identique et très classique: un header, un footer, un menu à gauche et la zone de contenu à droite qui elle changera vraisemblablement selon ce qui se passe dans l'application.

En utilisant le ViewRenderer par défaut pour toutes les actions de mes controlleurs, cela m'oblige d'avoir des dossiers dans le genre: views/scripts/controlleur1,
views/scripts/controlleur2,
etc..

et dans chacun d'eux un fichier pour chaque action dans le genre: add.phtml, edit.phtml, search.phtml, ..... En fait, dans chacun d'eux, c'est la meme chose (header, footer, menu) sauf le bloc (DIV) qui contient le rendering précis de l'action/controlleur en question....

Comment faire pour arriver à cela? quelle est la meilleur méthode?

je n'ai jamais utilisé Smarty et ca me semble tres bien, stable et efficace.... Les view helpers déjà fournis avec le zend framework font beaucoup de choses que le smarty fait déja comme la génération de «select box».... et il semble exister des adaptation du Zend View pour utiliser Smarty....

est-ce que ca vaux vraiment la peine de pencher vers smarty? L'intégration des deux se fait bien? ou l'utilisation de Zend «all the way» est mieux?

Merci de m'éclaircir!
Bruno
zonzon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 08h56   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Je pense que Smarty n'est utile que si tu souhaites avoir plusieurs skins pour une même page, or il est très rare de ne pouvoir le faire avec CSS. Tu peux éventuellement avoir besoin d'une page au code HTML allégé mais avec presque les mêmes informations (cas des pages pour appareils mobiles), ce qui suppose un code aplicatif (PHP) identique mais plusieurs templates, et justifie donc l'utilisation de Smarty.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 14h55   #3
Membre régulier
 
Étudiant
Inscription : novembre 2005
Messages : 85
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2005
Messages : 85
Points : 81
Points : 81
pour smarty tu trouvera un tuto ici : http://www.kitpages.fr/zf_integrerSmarty.php

cependant comme tu peux inclure d'autre page phtml dans ton code je trouve qu'il n'est pas nécéssaire de passer par là
Grummfy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 21h13   #4
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 426
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 426
Points : 2 813
Points : 2 813
Pour ton problème de partie commune voici ce qu'on fait dans plusieurs moteurs de vue

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   protected function _run()
   {
      // récupère le chemin complet du template demandé
      $name = func_get_arg(0);
      // le template principal est considéré à la racine des templates
      // de l'application (ou du module).
      if (!isset($this->_ets->_mainTemplate)) $this->setMainTemplate(dirname(dirname($name)) . '/main.html');
      // initialiser ets
      require_once("TemplatesEngines/Ets/Ets.php");
      // on indique à l'arbre de données d'Ets quel est le template à inclure
      $this->_ets->_content = $name;
      $this->_ets->_templatesDir = dirname(dirname($name)) . '/';
 
      // rendu de la page
      printt($this->_ets, $this->_ets->_mainTemplate);
   }
on peut faire pareil avec phtml
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   protected function _run()
   {
      // récupère le chemin complet du template demandé
      $name = func_get_arg(0);
      // le template principal est considéré à la racine des templates
      // de l'application (ou du module).
      if (!isset($this->_mainTemplate)) $this->setMainTemplate(dirname(dirname($name)) . '/main.phtml');
      // initialiser ets
      // on indique à l'arbre de données d'Ets quel est le template ŕ inclure
      $this->_content = $name;
      $this->_templatesDir = dirname(dirname($name)) . '/';
 
      // rendu de la page
     include $this->_mainTemplate;
   }
et donc aussi avec smarty

le main template est un fichier placé à la racine des templates application/scripts/mail.phtml dans le cas de phtml par exemple

ce main template contient l'entête le menu le pied tout ce qui est commun éventuellement paramétré par des variables de la vue (ex: $this->view->menu = true
et il inclus le template désigné par $this->_content (dans la vue)
voici l'exemple avec ets
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{mask:main}
<html>
<head>
<style type="text/css">
 
body {
	background-color: #ccffcc;
}
 
</style>
</head>
<body>
<h1>ZF Multi Renderer : Ets</h1>
L'affichage est rendu par Easy Template System avec le message suivant passé en paramètre : <br>
- {message}
 
{include:{_content}}
</body>
</html>
{/mask}
et avec phtml
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
<head>
<style type="text/css">
 
body {
	background-color: #ccffcc;
}
 
</style>
</head>
<body>
<h1>ZF Multi Renderer : Phtml</h1>
L'affichage est rendu par Php avec le message suivant passé en paramètre : <br>
- <?php echo $this->message; ?>
 
 
<?php include $this->_content; ?>
</body>
</html>
je te laisse imaginer la chose en smarty
A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h34.


 
 
 
 
Partenaires

Hébergement Web