IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres composants PHP Discussion :

Zend_View + Templating + Smarty ?


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 7
    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

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    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.

  3. #3
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 87
    Par défaut
    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à

  4. #4
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Pour ton problème de partie commune voici ce qu'on fait dans plusieurs moteurs de vue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. Utiliser du ExtJs en Php avec des templates Smarty
    Par galileogis dans le forum Débuter
    Réponses: 0
    Dernier message: 23/09/2009, 14h26
  2. Template SMARTY Google Maps
    Par julien75000 dans le forum Langage
    Réponses: 1
    Dernier message: 30/06/2009, 04h32
  3. [Smarty] affichage template SMARTY
    Par daninou dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/01/2009, 20h03
  4. [AJAX] débuguer un template smarty appelé avec ajax
    Par damjal dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/10/2008, 19h10
  5. [Smarty] Besoin d'aide pour le moteur de template smarty
    Par all2me dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 28/04/2007, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo