Smarty: een template systeem voor PHP

Info 
Door: Franky Braem Moeilijkheidsgraad: 2/3
Views:18.961Reacties: 2(Bekijken)
  Log in om zelf te reageren
 Waardering:7/10 (3 stemmen)



1. Wat is Smarty ?

Smarty is een template systeem voor PHP. Het zorgt er voor dat je de HTML code uit de PHP code kunt laten. Hierdoor kan je de PHP code gemakkelijker onderhouden. Bij grote projecten heb je ook het voordeel dat iemand zich met de PHP scripts kan bezig houden, terwijl iemand anders de templates kan ontwerpen.

2. Installatie.

Smarty is gemakkelijk te installeren. Download de laatste versie van smarty.php.net en drop de code uit de /libs/ directory op jouw host in een aparte directory.

3. Een eerste voorbeeld.

Wanneer je de Smarty code niet in het include path hebt staan, dan moet je eerst de constante SMARTY_DIR definieren. Een voorbeeld:

#Code
1
define('SMARTY_DIR', '/smarty/');

Nu kan je een instantie maken van Smarty:
#Code
1
2
require(SMARTY_DIR . 'Smarty.class.php');
$smarty = new Smarty();

Voordat je een template kan gebruiken moet je Smarty vertellen waar hij de templates en configuratie
bestanden kan vinden. Omdat Smarty de templates compileert moet je het ook wijs maken waar het de gecompileerde versies van de templates mag plaatsen. Dit moet een directory zijn waar Smarty mag schrijven. Chmod deze directory naar 775.
#Code
1
2
3
$smarty->template_dir = '/templates/';
$smarty->config_dir = '/configs/';
$smarty->compile_dir = '/templates_c/';

Nu is Smarty klaar en kan je templates gebruiken:
#Code
1
2
3
$smarty->assign('voornaam', 'Franky');
$smarty->assign('naam', 'Braem');
$smarty->display('hallo.tpl');

De assign methode wordt gebruikt om de template variabelen in te vullen. Met de methode display wordt de template opgehaald. Indien de template nog niet gecompileerd werd, dan zal dit eerst gebeuren. Compilatie gebeurt enkel als de template nieuw of gewijzigd is. De template wordt als het ware omgevormd naar PHP code, waardoor Smarty een goede performantie heeft.

De template ziet er als volgt uit:
#Code
1
2
3
4
5
<html>
 <body>
  <h1>Hallo, ik ben {$voornaam} {$naam}</h1>
 </body>
</html>

Dit is maar een klein voorbeeld, maar naarmate jouw project groter en groter wordt zie je hoe nuttig het is om de HTML code te scheiden van de PHP code. PHP wordt nog enkel gebruikt voor het verwerken van de gegevens (lezen, schrijven naar een databank) en het opvullen van de templates. Geen geknoei meer quotes, echo's, ...

Er is nog veel meer mogelijk met Smarty. Voor meer informatie: smarty.php.net

2 reacties
amdtuners Geplaatst op 29-07-2006 om 17:55
 

Regular
ik gebruik smarty al een tijdje nu, en het is echt een super krachtig middel om dynamische websites te schrijven. Eerder gebruikte ik een soort gelijk zelf geschreven template parser, maar het voordeel aan smarty is dat het ook nog eens extra functionaliteit bevat buiten het dom weg parsen van tpl files.
hammer Geplaatst op 05-12-2005 om 12:12
 

Regular
Niet echt simpel uitgelegd voor een newbie als ik.
Snap er dus geen hout van m.n. de installatie dus.

Pagina 1 

Om te reageren moet je ingelogd zijn.
Nog niet geregistreerd? Doe dat dan nu!


Terug naar gewone pagina

Websitemaken wordt gehost door Nucleus.be, uw Hosting Solution Builder