Sortie de Templeet 3.0

Posté par  (site web personnel) . Édité par Benoît Sibaud. Modéré par rootix.
Étiquettes :
0
23
fév.
2005
PHP
La version 3 de Templeet est sortie juste avant la trêve dominicale de LinuxFr.
Templeet est un moteur de templates comme Smarty ou ModeliXe, mais se caractérise par une gestion avancée des méthodes de cache.

Cette nouvelle version apporte notamment la gestion des templates génériques, c'est à dire un template gérant tous les fichiers avec la même extension, et la possibilité de gérer en natif les images au sein de Templeet (auparavant, Templeet pouvait écrire une image mais pas la renvoyer directement au butineur).

Les fonctionnalités ajoutées sont entre autres : le support de LDAP, la gestion des tableaux multidimensionnels et le support des commentaires PHP standard. Le système de cache et le module d'interrogation ont également été améliorés pour plus de souplesse dans l'utilisation.

Templeet est notamment utilisé sur des sites comme LinuxFr ou sur W-Fenec. Nouvelles fonctionnalités :
- Les commentaires // et /* */ sont maintenant reconnus dans le code templeet.
- les opérateurs binaires & ^ | ont été rajoutés en natif.
- le support des variables ressources PHP permet de générer des images, par exemple.
- le cache de page peut maintenant être initialisé à '/', permettant ainsi d'écrire les pages générés par Templeet à la racine du répertoire d'installation. Ces pages sont par la suite directement servies par Apache, sans passer par Templeet ou PHP, et ceci sur un plus grand nombre de configuration (notamment les hébergeurs mutualisés, où la directive DocumentRoot ne peut être modifiée). Ce mécanisme permet d'obtenir des performances équivalente à un site statique. La purge du cache n'effaçant évidemment que les fichiers crées par Templeet :)
- Les templates peuvent maintenant être disponibles par extension, un template sera utilisé pour toute les URLs de la même extension. De plus, un template peut également être utilisé pour tous les fichiers de même nom n'importe où dans la sous-arborescence. Ces deux mécanismes sont utilisés dans le package "Galerie".
- il est maintenant possible de remplacer des occurrences d'un texte par le résultat de l'évaluation d'un code templeet.

Aller plus loin

  • # Question piège

    Posté par  . Évalué à 3.

    quelle version de templeet est utilisée par linuxfr ?
    • [^] # Re: Question piège

      Posté par  (site web personnel) . Évalué à 1.

      D'après ce que j'avais lu, c'est loin d'être une version récente.

      Mais j'en profite pour dire que c'est assez inutile, amha, de courir après les dernières versions lorsque l'on est satisfait de celle que l'on utilise.

      Combien de fois n'entend-on pas cette phrase en info (qui me fait bondir d'ailleurs) : "Mais, le programme machin 1.3 c'est dépassé !" ... quelle bête phrase.
      • [^] # Re: Question piège

        Posté par  . Évalué à 2.

        je suis d'accord pour ne pas suivre à la trace, mais il peut y avoir des problèmes de migration si on ne suit pas les changements, ou de support si le développeur principal planifie la 4.0 et que le plus gros utilisateur reste en 1.0... (ca existe aussi ailleurs, cf debian et exim3 alors que les devs d'exim ont abandonné cette branche depuis 2 ans)

        Je ne veux pas dire que Linuxfr devrait déjà être en 3.0, mais que Linuxfr devrait suivre ces changements pour ne pas être obligé de tout réécrire à partir de rien quand il y aura migration, un jour...
        • [^] # Re: Question piège

          Posté par  (site web personnel) . Évalué à 3.

          Les modifications faites ne sont que des ajouts de fonctionnalités, ou des corrections de bugs minimes.
          le core de templeet est tres stable, (la preuve en est linuxfr), donc pas de souci majeur pour une upgrade.
          La seule modification qui casse une compatibilité est géré par un script qui fait la mise a jour (et est éprouvé).
          • [^] # Re: Question piège

            Posté par  (site web personnel) . Évalué à 1.

            Si les modifs sont minimes pourquoi Templeet 3.0 et pas Templeet 2.1 ?

            L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire

            • [^] # Re: Question piège

              Posté par  (site web personnel) . Évalué à 4.

              Les modifs sont minimes, pas les nouvelles fonctionnalités, les fichiers shadows, le LDAP ou les templates génériques par exemple. Et les formats de packages entre la 2 et la 3 sont incompatibles.
    • [^] # Re: Question piège

      Posté par  (site web personnel, Mastodon) . Évalué à 4.

      Une très vieille version, mais elle fonctionne très bien donc on ne touche pas.
      • [^] # Re: Question piège

        Posté par  . Évalué à 2.

        Une règle d'or : "Le mieux est l'ennemi du bien."
        • [^] # Re: Question piège

          Posté par  . Évalué à 3.

          La phrase type qui revient souvent, c'est "don't fix something which is not broken".
  • # Templeet, c'était mieux à vent

    Posté par  . Évalué à -6.

    Tout est dit ;)



    (bon, j'ai fait ma connerie de la semaine, chui content ;), je sors avec le sourire)
  • # et la tribune ?

    Posté par  . Évalué à 4.

    c'est quoi comme moteur ?
    • [^] # Re: et la tribune ?

      Posté par  . Évalué à 9.

      Moteur électrique alimenté par des éoliennes.
      Avec tout le vent qui est brassé sur la tribune, y'a largement de quoi l'alimenter en électricité.
      • [^] # Re: et la tribune ?

        Posté par  . Évalué à 4.

        Malheureusement, l'air pourtant abondamment présent se raréfie lorsque la proportion de ceux qui nous le pompent augmente, ce qui a tendance à se produire trop souvent.
        • [^] # Re: et la tribune ?

          Posté par  . Évalué à 1.

          l'air pourtant abondamment présent se raréfie lorsque la proportion de ceux qui nous le pompent augmente

          D'où, pour réduire les frais de climatisation, mettre d'un côté du batiment les gens qui brassent de l'air et de l'autre ceux qui le pompent ;-)
  • # Ch'uis pas réveillé ?

    Posté par  . Évalué à 6.

    sur templeet.org, les captures d'écran sont magnifiques...
    • [^] # Re: Ch'uis pas réveillé ?

      Posté par  (site web personnel) . Évalué à 2.

      [+] -> elles ne sont pas affichées chez moi non plus, et ça fait longtemps que ça dure (depuis que j'essaye de l'installer en fait)

      Mais ce site (templeet.org) reste un site superbe, et donc je ne le critiquerai pas au delà !

      Bravo pour cette version 3.
      • [^] # Re: Ch'uis pas réveillé ?

        Posté par  (site web personnel) . Évalué à 3.

        ben le site valide pas XHTML1.0 comme indiqué, ni en strict ni en transitionnel... (y'a même pas de doctype)
        je concois que le logo W3C Compliant est joli, mais heu, ca couterais qqch de vérifier avant de le mettre?
        • [^] # Re: Ch'uis pas réveillé ?

          Posté par  . Évalué à 0.

          Euh le site est quasiment valide, y'a troix quatres erreurs et il ets indiqué : "This page does conform to xhtml 1.0." c'est à dire cette page doit être compatible xhtml 1.0... ça ne veux pas dire qu'elle l'est nuance.
          Et enfin j'ai pas vu le logo du W3C moi sur le site...
          • [^] # Re: Ch'uis pas réveillé ?

            Posté par  . Évalué à 2.

            En bas de la page on peut lire :
            "Cette page a été générée par Templeet en 0.2934s.
            Elle est valide xhtml 1.0."
          • [^] # Re: Ch'uis pas réveillé ?

            Posté par  . Évalué à 6.

            This page does conform to xhtml 1.0
            Je croyais que le does était là pour insister sur le verbe suivant et non pour le mettre au conditionnel.
    • [^] # Re: Ch'uis pas réveillé ?

      Posté par  (site web personnel) . Évalué à 2. Dernière modification le 04 décembre 2021 à 20:28.

  • # Changement de nom?

    Posté par  (site web personnel) . Évalué à 3. Dernière modification le 04 décembre 2021 à 20:28.

    Est ce qu'il n'était pas question d'un changement de nom a une époque?

    Parce ce que bon, c'est pas vraiment un langage de template. Un template, c'est censé séparer le fond de la forme, mais quand on voit des exemples comme sur http://templeet.org/doc/list.fr.html (NdM: remplacé en 2021 par un lien archive.org) qui mélangent du sql avec des balises, c'est loin d'etre le cas!

    • [^] # Re: Changement de nom?

      Posté par  (site web personnel) . Évalué à 4.

      en même temps, ça reste un exemple :) Rien ne t'empêche de faire ta requête d'un côté, et d'avoir le html de l'autre. Et de plus rien ne t'empeche d'utiliser des CSS pour la présentation...
      ~list(~get('database'),
                     ~get('sql_sections_list'),
                     'LM',~include('section.tmpl'),
                     'LD','No section !',
                     'LE','Error during query'
      )
      
      avec ton fragment de template :
               <tr><td>~fld('section')</td><td>~fld('longname')</td></tr>
      
      
      Mais, je te l'accorde, tu peux faire du grouik si tu le veux.
      • [^] # Re: Changement de nom?

        Posté par  . Évalué à 2.

        Mouaip je ne vois pas trop non plus quelle est la différence avec
        php-tout-court-en-short-tout-nu. Pour moi templeet n'est pas un
        langage de template mais plutot une grosse lib couchée sur php, bien
        pratique il est vrai pour faire des sites ouaibe (y'a qu'à voir linuxfr ;).
      • [^] # Re: Changement de nom?

        Posté par  (site web personnel) . Évalué à 0.

        Mouais, je trouve pas ça super propre quand meme, je prefere un truc du style:

        $plop_f = & new PlopF($classes_descriptor);
        $board = & $plop_f->getInstanceOf('Board');
        $users = & $plop_f->getInstanceOf('Users');

        $html_board = $board->getHtmlBoard();

        $nxpt = & $plop_f->getNewInstanceOf('Nxpt');
        $nxpt->setTemplate(PHPLOP_BASEPATH.'web-app/templates/board.xml');
        $nxpt->useModule('n','nxpt:core');
        $nxpt->setVariable('board',$html_board) ;
        $nxpt->setVariable('user', $users->getCurrentUser());
        $nxpt->setVariable('patisserie', $plop_f->getNewInstanceOf('Patisserie'));
        $nxpt->cache();
        $nxpt->run();
        printXhtmlHeader();
        echo $nxpt->getVariable('template');


        Et le template (et bien sur, le parseur de templeet me bouffe presque tout donc je doit mettre en texte pur)

        <?xml version="1.0" encoding="iso-8859-1"?>
        <n:template>
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
        <head>
        <title>ICI LE MAIN TITLE</title>
        </head>
        <script type="text/javascript" src="board.js"> </script>
        <style type="text/css" media="screen">@import "style.css";</style>
        <body>
        <h1>Plop :o</h1>
        <div>
        <h2>Le bouchot</h2>
        <ul id="board">${board}</ul>

        <form method="post" action="add.php">
        <p class="post">
        <label>Votre message :
        <input id="message"
        name="message"
        type="text"
        maxlength="512"
        value="${patisserie:getMiniLogin('&gt; ')}"
        />
        <input type="submit"
        value="poster"
        />
        </label>
        </p>
        </form>
        </div>

        <div>
        <h2>Votre compte</h2>
        <n:if test="${user:isAnonymous()}">
        <n:then><a href="user/">login</a> | <a href="user/new.php">ouvrir un nouveau compte</a></n:then>
        <n:else><h3>${user:getLogin()}</h3><a href="user/">votre compte</a> | <a href="user/logout.php">logout</a></n:else>
        </n:if>
        <h2>Patisserie</h2>
        <form method="post" action="user/patisserie.php">
        <p><label>mini UA : <input maxlength="20" name="miniua" type="text" value="${patisserie:getMiniUA()}"/></label> <n:if test="${patisserie:getMiniUA() != ''}"><a href="user/patisserie.php?removeMiniUA">virer le mini-ua</a></n:if></p>
        <p><label>mini Login : <input maxlength="20" name="minilogin" type="text" value="${patisserie:getMiniLogin()}"/></label> <n:if test="${patisserie:getMiniLogin() != ''}"><a href="user/patisserie.php?removeMiniLogin">virer le mini-login</a></n:if></p>
        <p><input type="submit" value="J'veux mon gateau"/></p>
        </form>
        </div>
        </body>
        </html>
        </n:template>


        Au moins, il y a une vraie séparation.
  • # Quel est la raison de la version 3 ?

    Posté par  (site web personnel) . Évalué à 2.

    Nouvelles fonctionnalités :
    >- Les commentaires // et /* */ sont maintenant reconnus dans le code templeet.
    ça existe en version 2 mais dans les ~rem

    >- les opérateurs binaires & ^ | ont été rajoutés en natif.
    chouête de nouveaux opérateurs (mais ça vaut pas un passage de version majeure....)

    >- le support des variables ressources PHP permet de générer des images, par exemple.
    po compris ....

    >- le cache de page peut maintenant être initialisé à '/', permettant ainsi d'écrire les pages générés par Templeet à la racine du répertoire d'installation. Ces pages sont par la suite directement servies par Apache, sans passer par Templeet ou PHP, et ceci sur un plus grand nombre de configuration (notamment les hébergeurs mutualisés, où la directive DocumentRoot ne peut être modifiée). Ce mécanisme permet d'obtenir des performances équivalente à un site statique. La purge du cache n'effaçant évidemment que les fichiers crées par Templeet :)
    A peu de chose prêt, c'est l'idée même de templeet faire des pages statiques renvoyées par apache sans passer par PHP quand c'est possible. L'évoltuion n'est pas bien visible dans cette explication. Ou alors mon cerveau a un peu du mal ce matin.


    >- Les templates peuvent maintenant être disponibles par extension, un template sera utilisé pour toute les URLs de la même extension. De plus, un template peut également être utilisé pour tous les fichiers de même nom n'importe où dans la sous-arborescence. Ces deux mécanismes sont utilisés dans le package "Galerie".
    ça déjà c'est plus une évo majeure :)

    - il est maintenant possible de remplacer des occurrences d'un texte par le résultat de l'évaluation d'un code templeet.
    ça aussi , ça à l'air interessant : si je comprends bien il s'agit de l'intégration fine des regexp directement dans le moteur templeet ?

    En tout cas bonne continuation (va falloir que je vois si mon site migre facilement...)
    • [^] # Re: Quel est la raison de la version 3 ?

      Posté par  (site web personnel) . Évalué à 3.


      >- Les commentaires // et /* */ sont maintenant reconnus dans le code templeet.
      ça existe en version 2 mais dans les ~rem

      les ~rem evaluent leurs arguments, donc cela sert juste a retirer la sortie. ~noeval est l'équivalent, mais garde une syntaxe templeet, ce qui n'est pas le cas de // et /* */


      chouête de nouveaux opérateurs (mais ça vaut pas un passage de version majeure....)

      cf. plus haut, cassage de compatibilité pour le format de package.

      A peu de chose prêt, c'est l'idée même de templeet faire des pages statiques renvoyées par apache sans passer par PHP quand c'est possible. L'évolution n'est pas bien visible dans cette explication. Ou alors mon cerveau a un peu du mal ce matin.

      Oui, mais un ~uncache('/') etait problématique dans le cas ou le cache de page était situé a la racine, cela effacait _tous_ les fichiers y compris templeet et les templates... (plutot mauvais ;-)

      - il est maintenant possible de remplacer des occurrences d'un texte par le résultat de l'évaluation d'un code templeet.
      ça aussi , ça à l'air interessant : si je comprends bien il s'agit de l'intégration fine des regexp directement dans le moteur templeet ?

      exactement, a l'instar d'une regex PHP avec evaluation du code en fonction des correspondances trouvées.
  • # Un petit exemple

    Posté par  . Évalué à 4.

    J'avais oublié de le faire passer sur la ML de templeet mais j'ai réalisée un petit site de recettes de cuisines pour ma copine.

    Pour les geeks affamés : http://le.coin.cuisine.free.fr(...)

    C'est pas un très gros site, mais ca permet de s'amuser un peu.

    ps : si quelqu'un a une idée de design pour ce site, qu'il n'hésite pas. J'avoue que ca ma plairait bien de changer ces couleurS.
  • # Ressources template

    Posté par  (site web personnel) . Évalué à 1.

    J'aurai voulu des informations sur les ressources consommées par template : je l'ai installé sur mon mini serveur ( 200mhz, 80mo de ram ) sur une debian, php4.1.2, Snapshot: Templeet-3.0.0RC3 et certaines pages mettent jusqu'a 16sec pour etre générées :p
    de plus j'ai eu un probleme d'allocation de memoire à l'install.
    Je voulais donc savoir si je desinstalle tout de suite ou non.
    au fait, peut on faire une simple copie du repertoire pour l'installer ailleurs ?

    esperant etre au bon endroit pour questionner la dessus :)
    • [^] # Re: Ressources template

      Posté par  . Évalué à 2.

      16 sec ca fait beaucoup, j'aimerais bien voir le source de ta page. Si tu as activé la cache, normalement ca devrait prendre beaucoup moins de temps après. Mais je suis qd meme etonné du temps de calcul. :/

      La copie n'est pas a conseiller du _tout_, car Templeet initialise des variables selon l'installation; si ton site est à la racine de ton DocumentRoot ou non, ...

      Fait remonter ton expérience sur la Mailing User de templeet, avec les erreurs rencontrées, et il lien vers ta page phpinfo (tu peux la consulter dans la partie auth/ de ton site)
      • [^] # Re: Ressources template

        Posté par  (site web personnel) . Évalué à 1.

        donc voici je pense les infos :

        error404used: 0
        usepagecache: 1
        useincludecache: 1
        usetemplatecache: 1
        pathinfoaccepted: 0
        cgi_header: 0

        Ce qui veut bien dire que j'utilise le cache ...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.