Haszprus

Twig template engine

©   Haszprus   |   fejlesztés howto php

Gondoltam eljátszom a twig template kezelővel, ami erősen a symfony 2-höz és fabien potencierhez kötődik, tekintve hogy ő az atyja mindkettőnek és ez a symfony 2 default templating engine-je.

A telepítés igen könnyű pearrel:

pear channel-discover pear.twig-project.org pear install twig/Twig

(Egyébként nem muszáj pearrel telepíteni.)

Hozzuk létre a kis hello world sablonunkat:

<html> <head></head> <body> <p>Hello {{ name }}</p> <p>The date is {{ date }}</p> <p>The time is {{ time }}</p> </body> </html>

Mentsük el templates/hello.tpl-ként.

A template-et adattal kiszolgáló php a következőképp fog kinézni:

<?php include 'Twig/Autoloader.php'; Twig_Autoloader::register(); try { // templates könyvtárban keressük a template-eket $loader = new Twig_loader_Filesystem('templates'); $twig = new Twig_Environment($loader); $template = $twig->loadTemplate('hello.tpl'); echo $template->render(array( 'name' => 'World', 'date' => date('Y-m-d'), 'time' => date('H:i:s'), )); } catch (Exception $e) { die('Hiba: ' . $e->getMessage()); }

Ez ennyiből már működik is. A twig lehetőségeibe mélyebben nem megyek bele, aki használt már bármilyen template engine-t, annak sok újat nem fog mutatni.

RSS: hozzászólások ehhez a bejegyzéshez 8 hozzászólás

Szólj hozzá Te is!

Smarty-hoz hasonlít… Rá kellene végre vennem magam, hogy a symfony vagy codeigniter közül egyikkel behatóbban is foglalkozzam végre. Mindig belevágok, de az első tutorial után félretolom mindkettőt.

Nálad hogyan jött? Új meló miatt kezdtél érdeklődni az MVC alapú frameworkok iránt, vagy csupán sok időd volt mostanában és ezt többek között erre fordítottad? Motiválj!

Hedge, codeigniterrel fölösleges, nem tud semmit.

a diplomatervem témája framework-fejlesztés volt, és a pegánál jött a motiváció rá.

egy freelancer meló kapcsán megtanultam a symfonyt (nem kellett volna de meg akartam), a virgonál találkoztam codeigniterrel és cakephp-vel. illetve láttam még 2 másik cég saját frameworkjét.

ha vmikor van 1 órád, be tom mutatni a symfonyt gyorsan, látványosan és úgy h megértsd (élőben).

Igazából tökre szeretem ZF-ben, h PHP a "template engine" szépen .phtml-be szúrogatsz be <?php echo $valami ?> tageket.. nincs idióta másik nyelv amit meg kell szokni..

Bár túl sokat nem tudok twigről/smartyról, de nem érzem úgy, hogy hiányozna..

Orca, Nem érzem úgy, hogy ezek megtanulása olyan nagy nehézséget okozna egy olyan embernek, aki már ért és ismer több programnyelvet. Szerintem egy Smarty 1-2 óra alatt elsajátítható, bár nem minden esetben indokolt a használata.

Jogos, csak igazából nem látom mivel ad többet mint a PHP-s verzió. Igaz minimálisan egyszerűbb a {{ name }} mint a <?php echo $name ?>..

(és amíg nem utálták ki a kódból a short tageket még egyszerűbb volt a <?= $name ?>)

Persze, ha ismerném minimálisan, lehet más lenne a véleményem.. meggyőzhető vagyok, nem utasítom el a dolgot csípőből, csak jelenleg nem látom mivel jobb.

Orca, pl. ha le akarod tiltani a php-t a view layerből hogy ne lehessen áthágni az mvc-t gányolgatásokkal, illetve bármi olyan esetben amikor nem akarsz túl nagy szabadságot hagyni a view layert szerkesztő embereknek (pl mert interneten egy blogszolgáltatáshoz testreszabható template-ezést adsz a usernek, akkor nehogymár php-t írjon ).

a könnyebb szintaxist önmagában nem látnám akkora előnynek, hogy ezt felhozzam érvként egy template-ező rendszer mellett.

szerintem - számomra - alapvetően inkább a strict mvc elősegítéséről szól a dolog, amit viszont józan ésszel is lehet tartani. igaz, ha sürget a határidő, akkor az emberek gyakran elkezdenek gányolni, ilyenkor jól jöhet (persze attól függ, mi a cél ) ha vmi ezt technikailag megakadályozza.

Igen, bennem is ez merült fel érvként, ha más írja a view-t akkor ne gányoljon benne és jogos, hogy így magad is védheted az eltévelyedésektől Jó érv ez a strict mvc, szükségem még ugyan nem volt rá, hiszen csak saját kódomra kellett odafigyelnem, ami azért általában megy.. szeretem a szép kódot

A Front-End fejlesztők miatt választják általában ezeket külön a kódtól. Kapnak egy kicsivel nagyobb teret arra, hogy manipulálják a működést, de nem annyit, hogy az a core kód összegányolásához vezessen. Kb ennyi az ilyen rétegeknek a célja.
Hozzászólásod:


Nem vagy bejelentkezve, de...

A)
hozzászólhatsz regisztrálatlanul...

B)
ha regisztrálva vagy, bejelentkezhetsz...