Journal Moteur de template PHP - TinyButStrong

Posté par  .
Étiquettes : aucune
0
4
mai
2006

Ce matin (quel beau matin d'ailleurs, ensoleillé) j'ai eu soudain un doute.



Aucun article sur TinyButStrong ?!
Je m'empresse d'utiliser la fonction "recherche" et enfin, aucun journal sur TinyButStrong.



Alors vous connaissez tous un bon nombre de moteur de template, je ne saurais citer Smarty, mais connaissez vous TBS ?



Je l'ai découvert il y a quelques mois, et il m'a vraiment conquis, loin de la lourdeur de tous les autres systèmes et de leurs cotés trop code/html lié (à mon goût).



Alors on va faire simple, je vais citer le site officiel :



Les atouts de TinyButStrong :

  • simplicité : 1 seul fichier, 1 seule classe Php avec 8 méthodes et 3 propriétés.

  • travail facile avec les éditeurs Html visuels (tels de Dreamweaver ou FrontPage),

  • travail facile avec les bases de données,

  • développement rapide,



Fonctionnalités principales :

  • se connecte à toute base de données (en natif : MySql, SQLite , PosgreSQL),

  • formats date-heure et numérique faciles,

  • blocs avec affichage alterné,

  • affichage multi-colonnes,

  • affichage conditionnel,

  • fonctions évènementielles,

  • inclusion de fichiers et exécution d'autres scripts,

  • système de cache.



Je trouve le système de boucle tout simplement génial, je vais essayer de vous expliquer brièvement. Cas classique, vous avez un tableau (html), vous voulez remplir le tableau avec les données d'un array (php)



Dans votre page html, vous définissez le tableau, et vous mettez :

{tr}
{td}[blk1.key;block=tr]{/td}
{td}[blk1.val]{/td}
{/tr}

(Normalement ce sont des < pas des {, j'ai passé 10mn à essayer de chercher comment faire pour afficher avec des < sans succès < etc ne marche pas)


Et dans la page php vous mettez :

$TBS->MergeBlock('blk1',$my_array) ;


Puissant, simple, performant : J'ADORE !



Et puis devinez quoi ? La version 3.0 vient de sortir, avec comme fonction principale le support des plugins ! Excellent :-)




Petite cerise sur le gateau, le programmeur est francais et très réactif, bon allez quelques liens si vous voulez en savoir plus :



J'espère que ça vous plaira ;-)
  • # Le trailer !

    Posté par  . Évalué à 8.

    Et surtout ne loupez pas le petit (46s) film de présentation du projet : http://www.tinybutstrong.com/download/download.php?file=tbs_(...)
    Il vaut son pesant de cacahuètes !
    • [^] # Re: Le trailer !

      Posté par  . Évalué à 0.

      Excellent cette vidéo !!
    • [^] # Re: Le trailer !

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

      Ah ouuuuuuuuuuuuaaaaaaaaaaaaaaaaiiiiiiiisssss................. !!
    • [^] # Re: Le trailer !

      Posté par  . Évalué à 3.

      terrible cette bande annonce !! Le jeu des acteurs est tout bonnement merveilleux ;-) ils pourraient jouer dans plus belle la vie :-)
      Un seul regret leur ordinateur est sous windows mais bon ça doit être pour montrer que TinyButStrong fonctionne sur toutes les plateformes.

      C'est vraiment le petit plus que tous les projets devrait avoir, une vidéo de présentation qui montre que le projet il est tellement bien qu'il permet de se faire payer un verre par la chef sur les temps de boulot.

      Non vraiment une bonne idée.. à creuser peut-être.. créer des spots de pub pour les projets libres que l'on souhaite promouvoire. On pourrait même organiser des concours : Objectif : créer le meilleur spot de pub pour linux, pour open office etc..
      • [^] # Re: Le trailer !

        Posté par  . Évalué à 3.

        J'ai deja le slogan...!

        Prenez Les Faits.
        En français, ça le fait pas, mais on devrait essayer en anglais...!
        • [^] # Re: Le trailer !

          Posté par  . Évalué à 1.

          Bon maintenant que tu as le slogan il manque juste les acteurs, la caméra, le scénario et un site internet avec un nom qui claque pour héberger le spot... comme quoi la publicité ça peut être fait rapidement et pour pas cher.
  • # Au fait...

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

    Les tableaux en tr td, c'est has been ;)
    • [^] # Re: Au fait...

      Posté par  . Évalué à 4.

      "Non". Si tu avais regardé les exemples tu aurais vu que les tableaux dans ces mêmes exemples sont "bien utilisés", sémantiquement je parle. En effet ils ne servent pas à faire une mise en page mais bien à afficher des données du type tabulaire.
  • # comparatifs entre (d'autres) systèmes de templates

    Posté par  . Évalué à 4.

    pas tout récent, mais bref voila :

    http://cyberzoide.developpez.com/php4/template/

    avril 2004, tableau comparant Smarty, phpBB, ModeliXe, FastTemplate, VTemplate, MALA Template, PHP:Tal, TPLN, Icitrus, Templeet, TinyButStrong de l'époque, SiteManager, Xipe, IT, Flexy, Sigma

    et :

    http://www.phpindex.com/download/Templates_V1.2.pdf

    Etude de GLOBALIS media systems, "Etude des principales solutions de Templates en PHP, Mise en oeuvre de FastTemplate, PHPLib, VTemplate, Smarty et ModeliXe", 66 pages, 2002.
  • # mouaai

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

    1 seul fichier, 1 seule classe Php avec 8 méthodes et 3 propriétés.


    Publicité mensongère :-p

    Il y a plusieurs classes, et des dizaines de méthodes.

    Une classe "tiny" parait-il, mais le fichier fait plus de 3200 lignes de codes, soit les deux tiers de smarty (un peu plus de 4000)

    Bref, je rigole quand je lis la comparaison avec smarty sur le site.

    Bon, et puis personnellement, j'aime pas du tout le coté "je mélange tout", avec des trucs qui va directement chercher en base de donnée etc..

    [pub]
    Si tu veux un truc plus light, il y a jTpl en à peine 650 lignes de code, avec une syntaxe pour les templates proches de php (en gros, on remplace les [?php ?] par des { }, donc relativement simple à apprendre), un cache des templates compilés, un système de plugin à la smarty... une fois un template compilée (automatiquement bien sûr, à la smarty), il y a juste la classe principale qui est utilisée et incluse, avec ses 9 vraies uniques méthodes et ses 250 lignes de codes (donc rapide à parser par php).

    Il est intégré au framework Jelix, mais existe aussi en version standalone.

    http://jelix.org/articles/manuel/templates
    http://jelix.org/articles/telechargement

    http://ljouanneau.com/blog/2006/03/09/535-le-moteur-de-templ(...)
    [/pub]

    PS: désolé, j'ai pas de vidéo poilante :-)
    • [^] # Re: mouaai

      Posté par  . Évalué à 0.

      Merde, ca me désole plus que tout, mais pour une fois, je suis d'accord avec xulcestmavie. Je pertinente.
  • # PHP comme moteur de template

    Posté par  . Évalué à 4.

    J'ai commencé avec smarty, qui était bien mais lourd, puis j'ai continué avec smarty-light, qui bient était aussi, pour finalement tout arréter quand je suis tombé là-dessus :

    http://www.massassi.com/php/articles/template_engines/

    et j'utilise maintenent simplement PHP pour faire le boulot.

    Un fichier php qui gère le code et qui appelle en require_once() un fichier .tpl qui contient le contenu (html), avec des variables de la forme <?=$variable;?> ou des

    <?php foreach ($trucs as $truc): ?>
    ..
    <? endforeach; ?>

    pour gérer les boucles.

    On peut faire exactement la même chose (ou presque) qu'avec smarty ou autre, et on enlève le temps de compilation des templates...
    Ce qui fait gagner un temps relativement long.
    • [^] # Re: PHP comme moteur de template

      Posté par  . Évalué à 2.

      En effet je pense que brian massassi a raison. Ces langages de templates sont là un peu pour forcer les gens à séparer la présentation et la couche métier.

      Le php est en fait un excellent langage de template, il suffit de l'utiliser dans ce but et ainsi point besoin de langage de template.

      D'un autre coté les langages de templates offrent couvent des facilités commes des filtres, des systèmes de cache (ce qu'il offre dans son implémentation), ou structures de contrôle plus évoluées.

      Autre chose, on peut imaginer vouloir réutiliser les templates, dans un autre environnement de développement. Par exemple en Python... A ce moment il est souvent plus simple de réimplanter la classe de template en Python plutôt que de traduire tout les templates.

      Et du coup, :), un petit coup de pub sur ma classe de template nommée TempLight : http://dosimple.ch/articles/TempLight/

      Elle fait moins de 400 lignes et permet, par exemple, de traiter des structures de données arborescentes.

      Salutations,
      Batiste Bieler
  • # TBS, c'est bien, mais c'est aussi plus...

    Posté par  . Évalué à 2.

    Et oui,

    Moi aussi j'ai découvert TBS il y a quelques mois. J'ai eu l'occasion de le tester dans différents cas (formulaire, page, menu, db, ...) et il fait son boulot parfaitement.

    La nouvelle version introduit le support de pluggin et en profite pour migrer certaines anciennes fonctionnalités en pluggin. Pourquoi ? Car TBS n'a pas pour but d'être un moteur de template limité au xHTML ou XML.

    Ce qui veut dire que TBS et sa syntaxe permet de créer n'importe quoi à partir de n'importe quoi, même du nom balisé (XML & co).

    J'en viens à une classe héritière de l'ancien TBS qui à prioris serait en cours de migration vers le système de pluggin : TBSOoo. Cette petite classe héritière donc permet d'utiliser des documents OOo comme template et de les mouliner en PHP pour les remplir...Ce qui permet entre autre de créer un système de génération de rapports plutôt évolué.

    Voili voilou. Un sympathique projet à mes yeux, bien pensé, éfficace et avec des développeurs trés réactifs.

    Allez faire un tour sur les sites (tbs & tbsooo), ils sont blindés d'exemples, les doc sont bien faites et le "language" trés simple à aborder.

    ++
  • # Et du côté du python...

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

    TBS est vraiment sympa. Simple à utiliser, pas de prise de tête (contrairement à Smarty), logique et léger.

    Je voudrais savoir ce que vous pensez des templates Python. Je ne trouve pas de choses simples et aussi satisfaisantes que TBS. Je n'aime pas du tout le Php (pas de blocage pendant les erreurs, syntaxe pas tout à faire claire, POO implémentée au lance-pierre, ...) et je voudrais coder mon site en Python. Des conseils ?

    http://wiki.python.org/moin/WebProgramming

Suivre le flux des commentaires

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