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

Bibliothèques et frameworks PHP Discussion :

[Smarty] Avantages de l'utilisation de template


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Points : 113
    Points
    113
    Par défaut [Smarty] Avantages de l'utilisation de template
    Bonjour a tous, je suis assez novice dans le monde du développement et j'ai envie de me mettre au template pour pouvoir évoluer.

    J'ai lu le tutoriel de Eric POMMEREAU pour Smarty qui est bien expliquer, mais je vous avoue ne pas avoir compris l'avantage d'utiliser un template...


    Tout ce que j'ai lu peux être fait sans Smarty, alors quel est l'avantage d'utiliser un template?

    J'ai lu que sa permet de séparer le HTML du PHP, mais comme j'ai pu constater il y a toujours une partie de PHP dans le HTML, donc se n'est toujours pas une page de HTML pure:

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
     "http://www.w3.org/TR/html4/loose.dtd">
     <html>
    	<head>
    		<title>Test smarty</title>
    	</head>
    	<body>
    		<h1>Test smarty</h1>
    		<ul>
    			<li>une chaine: <span style="color:red;">{$smarty_une_chaine}</span></li>
    			<li>un entier: <span style="color:red;">{$smarty_un_entier}</span></li> 
    		</ul>
    	</body>
    </html>


    Peut être gagne t'ont en temps de réponse par rapport a un script normale?



    Pouvez vous m'éclairer sans partir dans des termes trop technique, je suis loin d'être un pro...


    Merci d'avance!!!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Points : 396
    Points
    396
    Par défaut
    moi j'y vois 2 gros avantages..
    - le systeme de cache (quand tu l'utilises bien, tu peux faire un site quasi-dynamique et diviser par 10 tes temps de reponses)
    - la separation du code.. ca aide a garder un site clair, bien découpé et plus facile a faire evoluer..

  3. #3
    Membre chevronné
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Points : 1 790
    Points
    1 790
    Par défaut
    Bonjour,

    Personnellement je suis venu au moteur de template parce que j'en avais marre de voir qu'en PHP tout projet que je commençais finissait par devenir un gros truc ingérable dont le temps de maintenance s'allongeait de manière exponentielle... cela même en faisant des efforts sur la manière de coder.

    Le jour où j'ai appris que l'on pouvait dissocier la présentation (matérialisée par le fichier de template) de la production de données (faite en PHP) je me suis dit que cela pouvait constituer une avancée... et au final quelle avancée !!

    Après avoir appris à me servir de Smarty (ce qui représente un certain coût d'apprentissage) j'ai développé tous mes projets à l'aide de ce moteur de template.

    Je pense que la valeur ajoutée de l'utilisation d'un moteur de template est énorme en comparaison d'un développement PHP classique et ce pour plusieurs raisons :
    • La séparation du code de production des données et de l'affichage (le code HTML produit in fine) offre un gain de temps important lorsque le projet commence à prendre un peu d'ampleur (c'est sur que pour 3 malheureuses pages ce ne sera pas forcément très visible...). La page PHP qui produit les données est largement amaigrie, ce qui fait que lorsque tu dois ajouter de la donnée tu retrouves bien plus facilement tes petits... de même pour une modification du design plus besoin de se tuer les yeux sur du code mélangeant boucles, manipulation de base de donnée et production de HTML, le code destiné à l'affichage est concentré dans le fichier de template.
    • Autre avantage que j'ai personnellement vérifié est que l'utilisation d'un moteur de template est bien mieux adapté au travail en équipe. Cela tient également du découplage données / affichage évoqué au-dessus.
    • La possibilité aussi de produire simplement différents formats de sortie. Je m'explique : imagine que tu as un écran qui présente une liste de nouvelles. Tu fais ta page avec Smarty donc un fichier (par exemple) listNews.php et un fichier de template listNews.tpl qui contient le HTML. Une fois ton fichier fait tu te dis tient j'en ferai bien un fil RSS de ma page. Comme moi tu es faignant et l'idée de faire un vilain copier-coller de ton fichier PHP ne te satisfait pas. Eh bien il te suffit dans le fichier Php de pointer (cela se fait avec la méthode display()) un autre fichier de template qui lui produit ton RSS par exemple listNewsRss.tpl, cette page pourrait être générée en fonction d'un paramètre HTTP. Encore une fois c'est le découplage données/présentation qui permet cela.
    • Dans Smarty, grâce aux fonctions, certaines instructions te permettent de gagner un temps précieux en produisant des éléments HTML comme des listes déroulantes, tableaux, aussi en te permettant, directement dans le template, de manipuler dates, entiers ou chaines de caractères.
    • Dernier avantage, l'utilisation du cache te permet aussi d'améliorer les performances de ton site.
    Au final l'avantage réside vraiment, selon moi, dans la séparation données / affichage. Les exemples du tutoriel que j'ai fait ne restent que des outils pédagogiques au service de celui qui apprend à se servir du moteur de template. La véritable démonstration de l'avantage de l'utilisation d'un moteur de template -en comparaison de l'absence de son utilisation- apparaît dans la réalisation d'un véritable projet de moyenne à grande importance.

    Pour autant mettre en place un moteur de templates doit s'accompagner d'un minimum de réflexion sur l'architecture du site, sur la façon dont les templates vont interagir (header, footer, menus communs...), sur le nommage des fichiers... ce n'est pas forcément évident. Il est à noter aussi l'absence de norme pour les moteurs templates ce qui oblige pour chaque moteur différent d'apprendre les différences d'utilisation et du langage.

    Pour conclure, je dirais qu'il ne faut pas faire des templates pour faire des templates. Si tu ressens le besoin d'aller vers les templates pour satisfaire ta curiosité, parce que tu as du mal à maintenir ton code ... ou autre alors vas y tu ne seras pas déçu et tu verras très vite en codant ton premier projet les avantages de l'utilisation d'un moteur de template.

    Voilà...

    @++

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    520
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 520
    Points : 1 446
    Points
    1 446
    Par défaut
    Citation Envoyé par DjChat Voir le message
    J'ai lu que sa permet de séparer le HTML du PHP, mais comme j'ai pu constater il y a toujours une partie de PHP dans le HTML, donc se n'est toujours pas une page de HTML pure:
    Dans l'exemple que tu cites, les parties en vert ne sont pas du PHP, mais des instructions Smarty.
    Bien que Smarty permette d'insérer du code PHP dans les templates, cela est totalement déconseillé. Ca devrait même être interdit

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Points : 113
    Points
    113
    Par défaut
    Ok merci pour toute vos infos, je visualise un peu mieux et je pense que je verrai mieux les avantages quand je l'utiliserai pour un bon projet!!!!

  6. #6
    Membre chevronné
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Points : 1 790
    Points
    1 790
    Par défaut
    Citation Envoyé par Sylvain James Voir le message
    Dans l'exemple que tu cites, les parties en vert ne sont pas du PHP, mais des instructions Smarty.
    Bien que Smarty permette d'insérer du code PHP dans les templates, cela est totalement déconseillé. Ca devrait même être interdit
    Oui absolument.

    Souvent cela vient de la méconnaissance de smarty. Si tu mets du php dans ton template c'est qu'il y a un blem.

    @++

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 10
    Points
    10
    Par défaut faut savoir ce que l'on veut
    Si je peux me permettre, cela dépend évidemment du projet et surtout de la volonté de se plier à la "norme" MVC (modèle - vue - contrôleur) dont Smarty est un outil assez light par rapport à d'autres.
    Donc si on veut faire un site construit correctement tout en souhaitant s'approcher d'un travail de professionnel, à mon avis Smarty est l'outil idéal car son approche est très facile (personnellement je n'ai mis que 18 mois à comprendre - je plaisante). a bon entendeur ....

  8. #8
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par humanzam Voir le message
    Si je peux me permettre, cela dépend évidemment du projet et surtout de la volonté de se plier à la "norme" MVC (modèle - vue - contrôleur) dont Smarty est un outil assez light par rapport à d'autres.
    Les avantages apportés par un moteur de template comme Smarty se font ressentir même si on n'adopte pas l'approche MVC. Mais il est vrai que Smarty s'insère de manière tellement naturelle et logique dans un contexte MVC qu'ils en deviennent vite indissociable.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 64
    Points
    64
    Par défaut
    C'est une manière de développer qui m'interesse, cependant est-ce adapté à n'importe quel type de projet?
    Mis à part les avantages sur la lisibilité et une maintenance plus simple du code, y a t-il des exceptions ou ces templates seraient un inconvenient?
    Comment se passe l'évolution du code en fonction des mises à jours de smarty? Et si smarty n'était plus? Est ce envisageable de procéder soi même à créer ses propres templates (perte de temps, difficulté trop grande pour un développeur occasionelle?)?
    J'ai connu une personne qui avait utilisé smarty pour l'abandonner par la suite (j'en ai oublié les raisons), voilà pourquoi je me pose ces questions.

  10. #10
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 239
    Points
    20 239
    Par défaut
    J'ai lu que sa permet de séparer le HTML du PHP
    C'est à mon sensun mauvais exemple de l'intéret d'un système de template. Car comme tu le dis c'est faisable sans moteur de template et de façon très propre.
    Suffit par exemple de regarder les vue de Zendframework.

    Après le moteur de template va t'obliger à passer par un fichier template ce que tu es tenter de ne pas faire sans cet outil.

    Reste que les moteurs de template apportent plein de petite choses qui te facilite la vie sur le long terme.
    Je pense par exemple à twig et sa fonction d'autoéchappement (toute variable affichée est automatiquement échappé) ou encore au différents filtres dispos sur à peu près tous les moteurs de template.

    Perso ce que j'apprécie le plus dans les moteur de template c'est de pouvoir laisser travailler un graphiste ou un intégrateur sur des interface sans pertinament savoir que je vais devoir repasser derrière car
    J'ai supprimé ce truc je sais pas ce que c'était ca me génais (c'est du vécue)

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 64
    Points
    64
    Par défaut
    Merci grunk, tu me fais comprendre que ceci n'est pas mon topic et t'occultes donc mes questions bien gentillement. Mais à moins qu'on me le demande je ne vais pas en créer un autre.
    J'ajoute donc à mon post précédent que les avantages/inconvenients fournis ici http://eric-pommereau.developpez.com...ge=page_1#LI-B ne me satisfont pas vraiment. Je veux dire que pour ce qui est des inconvenients l'auteur ne met en avant que la difficulté, pour un developpeur non confirmé, d'aborder smarty. J'aurais aimé avoir des avis plus pertinent encore, pas forcément sur smarty mais sur l'utilisation des templates avec du PHP.

  12. #12
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 239
    Points
    20 239
    Par défaut
    Citation Envoyé par noobC Voir le message
    Merci grunk, tu me fais comprendre que ceci n'est pas mon topic et t'occultes donc mes questions bien gentillement. Mais à moins qu'on me le demande je ne vais pas en créer un autre..
    Faut pas ce sentir persécuté comme ça hein , j'ai juste pas vu que le message datait de l'année dernière et que tu venait de le faire remonter


    y a t-il des exceptions ou ces templates seraient un inconvenient?
    aussi bon soit il , ca reste plus lent que de faire sans moteur de template et avec une gestion de cache indépendante

    Comment se passe l'évolution du code en fonction des mises à jours de smarty? Et si smarty n'était plus?
    Comme les développeur sont pas trop mauvais en général la compatibilité ascendante est assuré , au moins pour les versions mineures.
    Si smarty n'est plus , bha plus de mise à jour , mais ca l'empèchera pas de fonctionner.

    Est ce envisageable de procéder soi même à créer ses propres templates (perte de temps, difficulté trop grande pour un développeur occasionelle?)?
    Or besoin très particulier c'est une connerie. Y'a tellement de moteur dispo qu'il y'en a forcément un qui convient à ce que l'on cherche.

    J'ai connu une personne qui avait utilisé smarty pour l'abandonner par la suite
    Je viens de lacher smarty pour twig , l'architecture de smarty est vieillisante est plutôt lourde. Twig est full PHP 5 , et très agréable à utiliser pour le peux que j'ai fait avec.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Points : 64
    Points
    64
    Par défaut
    Faut pas ce sentir persécuté comme ça hein
    Je réagis pas toujours très bien, pas de soucis

    De plus j'ai pris le temps de me documenter sur le sujet et c'est dommage que twig ne soit pas mentionné plus souvent, notamment dans le sondage du forum. Donc au final mes hésitations se portent sur smarty et PHPLib et je vais tenté smarty parce qu'il me semble le plus abouti. Je sais pas si ma vision de PHPLib est juste mais c'est elle qui me parait vieillissante pour le coup et c'est bien dommage.
    Merci pour ces précisions grunk.

Discussions similaires

  1. [Smarty] Question sur l'utilisation des générateur de template
    Par fongus dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 24/09/2007, 21h36
  2. Probleme d utilisation de template dans le cpp
    Par Math75 dans le forum Langage
    Réponses: 2
    Dernier message: 07/10/2005, 16h26
  3. Utilisation des templates
    Par mikky dans le forum C++
    Réponses: 1
    Dernier message: 14/09/2005, 12h59
  4. Fuite de mémoire en utilisant le template list
    Par schtroumpf_farceur dans le forum Langage
    Réponses: 9
    Dernier message: 18/07/2005, 20h44
  5. Utilisation de template dans un role de fonctions/procedures
    Par Punky65250 dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 01/09/2004, 10h05

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