Haml — Une moteur de template génial - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Haml — Une moteur de template génial (/showthread.php?tid=4007) |
Haml — Une moteur de template génial - Sephi-Chan - 27-05-2009 Bonjour, Aujourd'hui, je vais vous présenter Haml, un moteur de template génial originalement développé pour le langage Ruby. J'ai découvert qu'un portage pour PHP avait été réalisé. Haml permet, depuis sa syntaxe très légère et basée sur l'indentation de générer du code HTML impeccable. Ainsi, le code suivant :
Est équivalent à ce template PHP :
Impresionnant, non ? Pour en savoir plus, je vous propose la documentation de ce portage : Sourceforge - PHPHaml Et si vous êtes curieux, je vous propose la documentation du Haml original, pour Ruby (et par extension, pour Ruby on Rails et autres frameworks ruby) : Haml & Sass. Notez que le module Haml original propose encore plus de fonctionnalité, notamment Sass, qui est un petit langage proche de CSS mais bien plus puissant (il prend en charge les variables, les expressions, etc.) dont les pages sont compilés pour former des documents CSS. Sephi-Chan RE: [Haml] Une moteur de template génial - OncleJames - 27-05-2009 RE: [Haml] Une moteur de template génial - pascal - 27-05-2009 La syntaxe *aml est sympa (principe : l'indentation exprime la logique d'imbrication), car moins verbeuse que le html. Par contre le coté template est toujours le même, et le débat sur "ne pas apprendre un nouveau langage" ou "mes intégrateurs ne comprennent rien à la programmation" donc "on utilise un système de templates" est une blague. Il ne faut pas apprendre un langage, mais une syntaxe : - comment afficher une variable (ou un attribut d'un objet) - comment utiliser des structures (if, for, les tests et boucles diverses et variées) Que ce soit en PHP, smarty, haml, l'intégrateur devra apprendre un minimum de syntaxe pour faire son boulot. C'est pour ça que j'utilise PHP comme moteur de template. A+ Pascal RE: [Haml] Une moteur de template génial - Allwise - 27-05-2009 Citation :Du Php dans du Html, n'est ce pas contradictoire avec la définition d'un moteur qui de base permet de séparer les différentes couches.Non, ce qui serait contradictoire si on veut respecter la distinction entre les couches, ce serait de récupérer ou de traiter les données dans le fichier template. Mais y a pas de différence entre Code PHP :
Et Code PHP :
pour reprendre l'exemple de Sephi, ou encore un Code PHP :
Pour ma part, j'utilise la syntaxe PHP la plupart du temps, et aussi de la dernière quand je mets les mains dans un forum phpBB. RE: [Haml] Une moteur de template génial - Sephi-Chan - 27-05-2009 (27-05-2009, 04:30 PM)OncleJames a écrit : En reprenant des if / else / for dans du code HTML n'est ce pas revenir en arrière au niveau de la séparation des couches ?Peux-tu me montrer un template qui liste tes joueurs/utilisateurs, s'il te plaît ? Je me demande comment tu fais sans boucles/conditions et autres. Quel que soit le moteur de template (PHP, Smarty, Haml, etc.), toi et ton designer avez besoin de structure de contrôles et même de fonctions (inhérentes à l'affichage) :
Alors ? Toujours persuadé que ton designer ne doit pas apprendre un minimum de syntaxe ? (27-05-2009, 04:40 PM)pascal a écrit : Que ce soit en PHP, smarty, haml, l'intégrateur devra apprendre un minimum de syntaxe pour faire son boulot.Je n'ai pas compris le lien. Pourquoi choisir PHP justement, quand d'autres systèmes apportent plus de clarté et une syntaxe plus légère ? Sephi-Chan RE: [Haml] Une moteur de template génial - OncleJames - 27-05-2009 Ok .. Sephi je l'essaye quand j'ai le temps (mais sans RoR :p ) C'est un autre long débat, mais je vais tout de même répondre a Pascal. Citation :Par contre le coté template est toujours le même, et le débat sur "ne pas apprendre un nouveau langage" ou "mes intégrateurs ne comprennent rien à la programmation" donc "on utilise un système de templates" est une blague. Malheureusement, que ce soit dans un contexte pro ou pas, les game designer ne touche pas et ne toucheront pas à la programmation. Ce ne sont pas les graphistes pour lesquels on invente des micro langages (ELUA, .. ) mais les personnes souhaitant ajouter du contenu au jeu (game designer). Leur interface doit être simple et clair, ils ne doivent pas chercher une option, elle doit être intuitive, et encore moins devoir programmer. Ce problème est d'autant plus présent dans les projets 'amateur', pour ma part je suis déjà très satisfait d'avoir réussi à initier les game designers à phpmyadmin, mais de la à leur faire apprendre un langage je refuse, c'est aux programmeurs de donner les bon outils et éviter par la même occasion tout bricolage de code. RE: [Haml] Une moteur de template génial - pascal - 27-05-2009 (27-05-2009, 05:08 PM)Sephi-Chan a écrit : Je n'ai pas compris le lien. Pourquoi choisir PHP justement, quand d'autres systèmes apportent plus de clarté et une syntaxe plus légère ? Une syntaxe plus claire ? Bullshit ! Essaye de faire des boucles imbriquées avec des tests en PHPBB ... La plupart des systèmes de templates constituent un monde à part entière. Je demande à voir Haml sur une page qui : - appelle des fonctions / helpers pour gérer les liens - utilise des appels à d'autres templates (header, footer) Pour Haml, c'est lisible, mais ça casse la compatibilité avec les éditeurs html, et ça rajoute un système de template. J'ai CreaJeu en PHP, les templates sont aussi en PHP+html, il n'y a pas plus simple. Si utiliser une structure if() en PHP pour un template c'est de la programmation que l'intégrateur n'est pas capable de comprendre, on est mal barrés ... car il aura autant de mal à comprendre le IF() dans un autre système de template. A+ Pascal RE: [Haml] Une moteur de template génial - Sephi-Chan - 27-05-2009 (27-05-2009, 07:32 PM)pascal a écrit : Une syntaxe plus claire ? Bullshit ! Essaye de faire des boucles imbriquées avec des tests en PHPBB ... La plupart des systèmes de templates constituent un monde à part entière. Je demande à voir Haml sur une page qui : Concernant Haml, rien ne change par rapport à Erb (le système d'affichage classique) en ce qui concerne les view helpers : ils restent identiques. Si tu es curieux, je t'invite à survoler ce guide qui explique comment fonctionne tout ça dans Rails : Ruby on Rails - Layouts and Rendering in Rails Concernant les éditeurs, c'est un faux problème. Qui confierai l'intégration d'une application à un intégrateur qui a besoin d'un éditeur HTML évolué ? S'il est intégrateur HTML/CSS et qu'il ne sait pas coder à la main, c'est qu'il n'est pas prêt (ou qu'il est bidon ^^). Il faut quand même avoir un minimum d'exigences sur les compétences des gens qui participent à ce que l'on fait (d'ailleurs, c'est généralement bon de s'entourer de personnes plus compétentes que soi). Pour finir, je te rejoins sur la merde que sont les templates PHPBB et le minimum de connaissance à avoir pour un intégrateur. Sephi-Chan RE: [Haml] Une moteur de template génial - pascal - 27-05-2009 (27-05-2009, 08:51 PM)Sephi-Chan a écrit : Concernant les éditeurs, c'est un faux problème. Un éditeur permet de colorer le code et d'éviter les erreurs basiques, ce n'est pas qu'une question de compétence. Je me débrouille pas mal en PHP, pourtant j'utilise Eclipse pour colorer le code, et ça me signale des erreurs bêtes. Comment les templates haml sont-ils validés ? Si on écrit une structure fantaisiste car mal indentée, que se passe-t-il ? A+ Pascal RE: [Haml] Une moteur de template génial - Zamentur - 28-05-2009 Je suis du même avis que Pascal, php est largement suffisant! Et Haml semble uniquement attirant à cause du fait de sa réécriture du code html... HTML est peut être verbeux mais de toute façon un intégrateur doit savoir en faire non? Un autre intérêt pourrait être de pouvoir porter un site sur un autre langage, mais dans ce cas (très rare) je me tournerais vers une solution xml+xslt avec une librairie de manipulation xml digne de ce nom. |