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

Affichage des résultats du sondage: Quel système de template utilisez/utiliseriez - vous ?

Votants
147. Vous ne pouvez pas participer à ce sondage.
  • PHPLib

    42 28,57%
  • VTemplate

    5 3,40%
  • Smarty

    81 55,10%
  • ModeliXe

    10 6,80%
  • PowerTemplate

    1 0,68%
  • PHPTemplate

    5 3,40%
  • Xtemplates

    2 1,36%
  • EcTemplate

    0 0%
  • UltraTemplate

    0 0%
  • Itemplate

    0 0%
  • Quick Template

    1 0,68%
  • YATS

    0 0%
Bibliothèques et frameworks PHP Discussion :

[Templates] Quel système utilisez-vous ? Pourquoi ?


Sujet :

Bibliothèques et frameworks PHP

  1. #121
    Membre actif

    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 239
    Points
    239
    Par défaut
    Salut,
    en lisant ce topic j'ai téléchargé phpLib qui me parrait avoir une syntaxe plutôt clair afin de s'initier aux templates par contre lors de l'exécution j'ai cette erreur...
    Undefined offset: 0 in template.inc on line 320
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->set_var($varname, $m[1][0]);
    Savez-vous comment résoudre ce problème :
    J'ai été sur le site du projet mais je n'ai pas plus d'infos

  2. #122
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Spack
    Salut,
    en lisant ce topic j'ai téléchargé phpLib qui me parrait avoir une syntaxe plutôt clair afin de s'initier aux templates par contre lors de l'exécution j'ai cette erreur...
    Undefined offset: 0 in template.inc on line 320
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->set_var($varname, $m[1][0]);
    Savez-vous comment résoudre ce problème :
    J'ai été sur le site du projet mais je n'ai pas plus d'infos
    C'est tout simplement un indice de tableau qui n'existe pas, donc PHP le signale.

    j'ai remplacé la ligne par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(isset($m[1][0]))
    	    $this->set_var($varname, $m[1][0]);
    et ça marche nickel

    A+

    Pascal
    Was I asleep?

  3. #123
    Membre actif

    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 239
    Points
    239
    Par défaut
    ok merci

  4. #124
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    La phplib a semble t'il été développé pour php3 avec un error_reporting <> E_ALL, donc pas mal de trucs font des warning si on force le niveau d'erreurs un peu plus haut.

  5. #125
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    Salut,

    J'ai pas lu les 10 pages du topic, mais ...


    Après avoir essayé PHPLib, que je trouvais bien, j'ai essaye TemplatePower (gratuit aussi), qui est JE DIT BIEN MILLE FOIS MIEUX ...


    * Il est "quasiment" comme PHPLib, mais on n'a plus besoin de déclarer les blocks !!! (il les trouves tout seul), on peut inclure des templates directement dans des templates, voire même du code php !!!



    Bref, c'est pas pour faire de la pub, mais pk s'en priver ?


    PS : Ya aussi si vous voulez un système de cache ...

  6. #126
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    Salut

    je suis allé faire un tour dans la doc, et je vois bien des déclarations de blocs, donc peux tu expliquer ce que tu entend par "on n'a plus besoin de déclarer les blocks"?
    La seule chose que je fasse avec Xtemplate (je ne connais pas celui de phplib) c'est $tpl->parse('MONBLOC'); ce qui me semble correspondre à prepare()
    Pour l'inclusion directe de template j'en ai eu besoin une fois mais ça peut servir. Par contre du PHP dans un template me semble être une erreur, les templates sont le domaine du graphiste, le code celui du développeur, on les sépare exprès, pourquoi les réinclure?

  7. #127
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Je me met doucement a Flexy de PEAR que je trouve excellent ! (avant j'utilisais mon propre systeme où la simplicité était la priorité... Flexy reste tout aussi simple mais tres puissant).

    un exemple de boucle + condition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <table border="1" flexy&#58;if="membres">
        <tr flexy&#58;foreach="membres,row">
            <td>&#123;row&#91;id&#93;&#125;</td><td>&#123;row&#91;nom&#93;&#125;</td><td>&#123;row&#91;prenom&#93;&#125;</td>
        </tr>
    </table>
    Comme on peut voir, la contition est directement dans la balise <table> (si $membres existe) et la boucle directement dans la balise <tr> (pour tout le tableau $membres, recuperer la clée en tant que "row")! Peut-on rever plus propre ?

    Du coup, la notion de bloque devient inutile, j'ai d'ailleurs rien trouvé a ce sujet.

    Cerise sur le gateau : rien à assigner, tout est objet, il suffit donc de preparer son objet représantant la structure des variables et les noms utilisés dans le template sont les memes, l'objet permetant d'eviter l'effet de bord avec les autres variables du script.

    Un atribut de l'objet peut bien sur etre un objet lui meme, dans ce cas, on y accede dans le template le plus simplement du monde : {instance.valeur}.

    On peut appeler aussi dans le template directement une méthode : {foobar()}, en lui passant des valeurs si ca nous chante : {foobar(value, #string#)}. En sachant qu'une méthode peut appeler un autre template, je vous laisse deviner les possibilités.

    Il compile un template en script php/html au premier appel (de maniere optimisée, avec des <?php ?> partout), et ensuite fait toujours appel au script compilé, ce qui le rend tres rapide vu qu'il n'y a plus de parsing/analyse. Si l'on modifie le fichier template ou le fichier .php, il le recompile automatiquement (bien sur, c'est configurable).

    Bref, tres simple, tres puissant et tres rapide de plus c'est pear et donc il s'integre tres bien avec les autres packages comme quickform, pager.... Il est recent et gagne vraiment à être connut

  8. #128
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    Effectivement, c'est le premier template qui me semble vraiment interessant :
    1) "compilation" du template
    2) pas vraiment d'assignation des variables
    3) sécurisé (en modifiant le template on a pas accès pour autant à toutes les fonctions et variables. on est limité à l'objet actuel).
    4) syntaxe simple

    je sens que je vais adopter ou au moins m'en inspirer fortement...
    Google is watching you !

  9. #129
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 89
    Points : 114
    Points
    114
    Par défaut
    ça a l'air impressionnant cette petite chose

  10. #130
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Impressionant en effet, mais prend pas mal de fichiers
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  11. #131
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Comme tout package pear, il y a plusieurs fichiers certes mais on les met tous dans un repertoire et on en entend plus parler ensuite. De plus le code étant bien séparé, ca permet de l'étendre facilement.

    A propos des bloques, j'avais dit que j'ai rien trouvé à ce propos, je viens enfin de trouver :
    Citation Envoyé par Le changelog de Flexy
    support for id blocks
    $flexy->compile('sometemplate.html#mytag');
    will compile a file {compileDir}/sometemplate.html#mytag
    which contains the tag and contents of <span id="mytag"> ... </span>
    Encore une idée simple mais redoutable : tout element ayant une id est un bloque !!

  12. #132
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    J'utilise pour ma part Smarty qui me semble complet et très utiles les fonctions qui peuvent aider à l'affichage du texte (truncate, etc.) qui sont des alias aux fonctions PHP! Bref, j'apprécie beaucoup Smarty qui m'a fait aimer les Templates qui jusqu'à là, je n'avais jamais appréçiés :/

    Je les ai pas tous étudié, tout le monde m'a conseillé ceux ci sur un autre forum donc j'ai un peu lui et j'ai adhéré!

  13. #133
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    cedricgirard, pour les déclarations de blocks, je parlais dans le fichier PHP.

    Dans PHPLib il fallait les déclarer avec utilisation, la y'a plus besoin avec PowerTemplate ...

  14. #134
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Jusqu'à présent j'utilisais Smarty comme moteur de templates... la semaine dernière pour inaugurer mon blog (vi encore un ) je me suis dis que j'allais faire un article à l'éloge de Smarty...

    Puis finalement, je me suis dis que comme ça faisait un moment que je ne m'étais pas renseigné sur l'actualité des moteurs de templates, je suis venu par ici et relu l'intégralité des posts...

    Au final, je suis tombé sur le post de naholyr et ça m'a fait vachement réfléchir... au final j'ai pondu un petit article intitulé l'après smarty... je détaille ce que naholyr a ennoncé en présentant comment se passer de smarty une fois qu'on a compris comment il marche... on obtient une méthode de développement s'insipirant fortement des templates mais sans leur faire appel...

    Du coup, j'aimerai avoir votre avis là dessus, et surtout savoir pourquoi des usines à gaz comme smarty tirent leur épingle du jeu !!

  15. #135
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Intéressant tout ca en effet, ca fait réfléchir

    Mais je pense néanmoins que même si php lui meme est une solution de template, et de surcroit puissante, elle restera toujours plus compliquée qu'une solution de template bien concue, je reprends pour exemple le cas du foreach dans ton article 'l'apres smarty'
    //SMARTY
    {section name=value loop=$listValues}
    {$listValues[value].name}
    {/section}
    ou
    {foreach item=value from=$listValues}
    {$value.name}
    {/foreach}
    //PHP
    [?php foreach($listValue as $value): ?]
    [?=$value['name']?]
    [?php endforeach; ?]
    On voit donc qu'en effet, il parait inutile de réécrire un langage alors que c'est aussi simple directement en php.
    Mais là ou il y a une faiblesse, c'est que dans cet exemple, il n'y a aucune vérification, pour reprendre mon exemple sur flexy :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <table border="1" flexy&#58;if="membres">
        <tr flexy&#58;foreach="membres,row">
            <td>&#123;row&#91;id&#93;&#125;</td><td>&#123;row&#91;nom&#93;&#125;</td><td>&#123;row&#91;prenom&#93;&#125;</td>
        </tr>
    </table>
    devient une fois "compilé" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php if &#40;$t->membres&#41;  &#123;?><table border="1">
        <?php if &#40;$this->options&#91;'strict'&#93; || &#40;is_array&#40;$t->membres&#41;  || is_object&#40;$t->membres&#41;&#41;&#41; foreach&#40;$t->membres as $row&#41; &#123;?><tr>
            <td><?php echo htmlspecialchars&#40;$row&#91;'id'&#93;&#41;;?></td><td><?php echo htmlspecialchars&#40;$row&#91;'nom'&#93;&#41;;?></td><td><?php echo htmlspecialchars&#40;$row&#91;'prenom'&#93;&#41;;?></td>
        </tr><?php &#125;?>
    </table><?php &#125;?>
    Ont voit donc bien que le moteur de template ne fait pas "que traduire" la logique de présentation mais rajoute implicitement beaucoup d'autres choses comme la verification de variables et mise en forme qui seraient lourds à traiter en php pour le designer.

    Je reste donc persuadé que la solution template *si elle est bien concue* remplace tres avantageusement le php dans du html.

    Maintenant, pour en revenir au cas de Smarty, mon avis est que 80% de ses fonctionalités sont totalement inutiles. En effet, je suis bien conscient que la présentation à besoin d'une logique mais cette logique n'a finalement pas besoin de grand chose : conditions et bouclage. Pour traiter des cas complexes de conditions, comme tu le fait remarquer à juste titre, définir une fonction sur mesure appelée dans cette condition peut résoudre tous les cas de figure. Smarty permet ca mais pourquoi en faire plus ? Poudre aux yeux ?

    Flexy lui se contente de ces 3 possibilités ce qui lui permet d'avoir une "runtime" bien plus legere en ayant les memes possibilités. Il a cependant un énorme avantage qui ne m'était pas apparut tout de suite et qui fait que j'aurais tendance à l'appeler "l'avenir de smarty" : il dispose d'un vrai parser html/xml !

    C'est grace à ce parser que l'on peut écrire la logique dans les balises grace a son espace de nomage (avoue que c'est tres élégant), et qui fait que chaque balise peut etre considérée comme bloque identifiable par son id. On peut jouer sur les attibuts, propriétés et valeurs directement, ce qui permet de gerer les forms de facon tres simple ou encore des élements XUL => C'est peut-etre bien dans ce type d'interface qu'est l'avenir justement (Microsoft prévoit un équivalent de XUL dans sa prochaine version d'IE).

    Les "languages" balisés sont par essence déjà structurés, pourquoi n'avoir jammais utilisé directement leur structure ?
    Alan Knowles a -a mon avis- mit le doigt sur ce que devrait être une solution de template : syntaxe simple, utilisation directe de la structure html/xml et dialogue direct avec les élements "interactifs".

  16. #136
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 89
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par doof
    Les "languages" balisés sont par essence déjà structurés, pourquoi n'avoir jammais utilisé directement leur structure ?
    Alan Knowles a -a mon avis- mit le doigt sur ce que devrait être une solution de template : syntaxe simple, utilisation directe de la structure html/xml et dialogue direct avec les élements "interactifs".
    N'est-ce pas également le cas de ModeliXe ?

  17. #137
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Sans bien connaitre modeliXe, il me semble qu'il se "contente" de rajouter ses propres balises et ses propres atributs dynamiques, du genre mXattribut="bgcolor:couleur".

    Un champ de form donnerait par exemple : (tiré de l'exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx&#58;formField id="motdepasse" size="30" maxlength="50"/>
    Il n'utilise donc pas directement les vrais balises mais bel et bien les siennes. (impossible de travailler ca en wysywyg).

    Maintenant, je peux me tromper bien sur

  18. #138
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    impossible de travailler ca en wysywyg
    Il existe un addon pour dreamweaver.

    http://modelixe.phpedit.com/telechar...lang=fr&idlog=

  19. #139
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    L'idéal est justement de pouvoir utiliser un élement nativement sans le défigurer, et sans avoir besoin de plug-in pour l'éditer avec son éditeur préféré.
    Faut-il aussi un plug-in pour gerer un menulist en XUL ?

  20. #140
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 89
    Points : 114
    Points
    114
    Par défaut
    Quand on voit un travail comme Flexy, il faut bien reconnaître qu'on se sent tout penaud, et qu'on se dit que c'est la voie à suivre, qu'il n'y a aucun doute là-dessus. On se demanderait même comment on a pu se fourvoyer dans d'autres pistes sans penser à celle-là.

    En tous cas c'est ce que je me dis. Et je suis encore plus surpris de voir que modeliXe n'a pas suivi cette voie alors qu'ils en étaient si proches

Discussions similaires

  1. Quel EDI utilisez-vous en 2012 pour le développement Web ? Pourquoi ?
    Par Community Management dans le forum Outils
    Réponses: 69
    Dernier message: 31/08/2016, 11h12
  2. Quels Frameworks utilisez-vous ? et pourquoi ?
    Par snipes dans le forum Android
    Réponses: 5
    Dernier message: 22/02/2013, 16h03
  3. Quel outil de supervision système utilisez-vous ?
    Par cyberzoide dans le forum Linux
    Réponses: 0
    Dernier message: 08/02/2013, 12h09
  4. Réponses: 8
    Dernier message: 10/11/2006, 20h33

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