Què és Haanga?
Haanga és un motor de plantilles que utilitza la sintaxi de Django. Al principi va ser desenvolupat per Menéame, però es va decidir llançar com un projecte independent perquè pugui ser utilitzat per qualsevol persona 🙂
Algunes de les característiques de Hangaa:
- Llegible per humans.
- Fàcil d’usar i mantenir
- Molt eficient perquè cada plantilla és compila a un script PHP.
- El codi generat està llest per funcionar amb qualsevol optimitzador de codi PHP(com XCache).
Per què un motor de plantilles?
- A Menéame el rendiment és prioritari.
- La compilació es fa solament en el pitjor dels casos (quan no hi ha una plantilla o la plantilla és més recent que la generada)
- En general, només una petita porció de Haanga es carrega (la que comprova i determina si és necessària una compilació).
- El codi generat està optimitzat
- Una funció es genera.
- Tot és PHP (sense canvis de context entre HTML i PHP)
- La sintaxi de Django és molt bonica 🙂
Inicis del projecte
Tot va començar amb un tweet, Meneame (una web de codi obert similar a Digg) estava buscant un motor de plantilles eficient.
El nom del projecte prové de la paraula guaraní Ha’anga que significa “dibuixar” o “forma”
Instal·lació (OpenSuSe 11.4)
Nota: Tot açò es fa tenint en compte que teniu instal·lat un servidor LAMP(Linux, Apache, MySQL i PHP) i que la carpeta on estarà el projecte es troba dins del servidor (a la carpeta “www” o “public_html”).
- Baixem la darrera versió d’Haanga de la pàgina de descarregues.
- Creem una carpeta que anomenarem “prova” (per exemple) dins del nostre directori “www” o el que apunte al nostre servidor Apache.
- Descomprimim l’arxiu i ens movem a la carpeta “lib”.
PEAR
Ens fa falta el paquet php5-pear, que instal·larem amb un senzill:”
sudo zypper install php5-pear
Després fem al terminal:
pear channel-discover pearhub.org pear install pearhub/Haanga
Podeu instal·lar la versió en desenvolupament mitjançant GIT (que déu estar instal·lat) i amb aquesta comanda:
git clone git://github.com/crodas/Haanga.git
Podeu provar com funciona al navegador amb un exemple així:
A dins de la carpeta “prova” que hem creat al nostre directori “www” o “public_html”, tindrem el fitxer “Haanga.php” i un directori per als “templates”, i altre amb els arxius necessaris d’Haanga que també ens hem baixat, i que porta el mateix nom.
Crearem un fitxer “index.php“, i ficarem açò:
<?php require "Haanga.php"; $config = array( 'template_dir' => 'templates/', 'cache_dir' => '/tmp', 'autoload' => TRUE, /* Opcions que són passades al compilador */ 'compiler' => array(), ); Haanga::configure($config); $user = array('name' => 'Jordi Juan'); $title = 'Provant Haanga'; $vars = compact('user', 'title'); Haanga::Load('template.html', $vars);
Després, dins de la carpeta “templates”, crearem un fitxer anomenat “template.html“. Com podeu veure, al fitxer “index.php” li indiquem que carregue aquesta plantilla.
<html> <head> <title>{{ title|default:"Hola mundo"}}</title> </head> <body> {% filter upper %} Salutacions {{ user.name }} {% endfilter %} </body> </html>
I ja està!! Si anem a http://localhost/prova/, veurem Haanga en acció!