27-05-2009, 03:02 PM
(Modification du message : 14-02-2012, 01:15 PM par Sephi-Chan.)
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
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 :
!!! 1.1
%html
%head
%meta{ :http-equiv => 'Content-Type', :content => 'application/xhtml+xml;charset=utf-8' }
- if ($title)
%title= $title
- else
%title= $pagename
%body
#header
%h1 Example page
- if ($slogan)
%span= $slogan
#content
%table.config.list
%tr
%th ID
%th Name
%th Value
- foreach ($config as $c)
%tr[$c]
%td= $c->ID
%td= $c->name
%td= $c->value
#footer
%span.author Random Hacker
Est équivalent à ce template PHP :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml;charset=utf-8" />
<?php if ($title) { ?>
<title><?php echo $title; ?></title>
<?php } else { ?>
<title><?php echo $pagename; ?></title>
<?php } ?>
</head>
<body>
<div id="header">
<h1><?php echo $pagename; ?></h1>
<?php if ($slogan) { ?>
<span><?php echo $slogan; ?></span>
<?php } ?>
</div>
<div id="content">
<table class="config list">
<tr><th>ID</th><th>Name</th><th>Value</th></tr>
<?php foreach ($config as $c) { ?>
<tr class="<?php echo ($class = forClassName($c)); ?>"
id="<?php echo "$class_{$c->ID}"; ?>">
<td><?php echo $c->ID; ?></td>
<td><?php echo $c->name; ?></td>
<td><?php echo $c->value; ?></td>
</tr>
<?php } ?>
</table>
</div>
<div id="footer">
<span class="author">Random Hacker</span>
</div>
</body>
</html>
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