Miért is jó nekünk egy ilyen?
– függetlenné teheti a php kódot a megjelenítéstől márpedig ez jó dolog (Good Thing T) (ez pedig általában egyébként is külön feladat külön embert jelent, képesek leszünk többrétegű alkalmazások készítésére (lásd Invison Power Board és társai), megértjük ezek működését,)
– tisztább és logikusabb programot tudunk írni
– biztonságosabb kód (a grafikus kolléga nem fér hozzá az általunk készített remekműhöz)
– képesek leszünk felületcserés alkalmazás fejlesztésére (szabványos módszerekkel)
De mire is képesek az ilyen sablonrendszerek:
- alapvető változó behelyetítésre, egyszerű tagek
- dinamikus blokk funkciók (alapvető ciklusok)
- minden oldal letöltésekor megtörténik a sablon értelemezése
- sebesség növelése (kész feltöltött sablon tárolása)
Mi a Smarty-val fogunk ügykezelni mivel:
- php nyelven írodott (nem kell új ismeret a kezdéshez :))
- nincs felesleges sablon értelmezés ( 1-szer fordít)
- saját funckiókat, módosítókat tudunk alkalmazni
- szekciók alkalmazása (és egymásba ágyazhatósága if,foreach,section)
- a tag elválastók definiálhatók ( {} stb.)
- cache rendszerrel is el van látva,de tudunk írni saját cache funkciókat
- a sablon forrás többféle lehet (fájl ,adatbázis)
- plugin rendszere is van
- utoljára de nem utolsosorban egyszerű
Mi kell a kezdéshez?
- A szokásos Szentháromság, meg a Smarty rendszer: http://smarty.php.net/do_download.php?download_file=Smarty-2.6.6.tar.gz
- PHP 4.0.6 a minimális php verziószám
- hozzunk létre egy cache, és egy configs könyvtárat, és adjuk meg a 777-es jogot ennek és a templates_c könyvtárnak
csináljunk egy könytárat a htdocs-ban, ebben fogunk ügyködni, csináljunk benne két könyvtárat : templates ill. templates_c -t, majd másoljuk bele a Smarty-2.6.6.tar.gz-ből a libs/*.* -ot. Tehát most így néz ki
akkor tehát ezek most így néz ki a struktúra:
1 2 3 4 5 6 | -smarty/ --------/libs/ (itt van a smarty) --------/cache (itt tárolja majd az összeállított kész sablonokat) --------/configs (ez önmagért beszél) --------/templates (itt vannak a sablonok) -------/templates_c (ide generálja a kimenő kódot a smarty) |
ha nem free szerveren lennénk így alakulna az elrendezés:
1 2 3 4 5 6 | /usr/local/lib/php/Smarty/Smarty.class.php /usr/local/lib/php/Smarty/Smarty_Compiler.class.php /usr/local/lib/php/Smarty/Config_File.class.php /usr/local/lib/php/Smarty/debug.tpl /usr/local/lib/php/Smarty/core/*.php /usr/local/lib/php/Smarty/plugins/*.php |
1 2 3 4 5 | /web/www.mydomain.com/smarty/webapplication/templates/ /web/www.mydomain.com/smarty/webapplication/templates_c/ /web/www.mydomain.com/smarty/webapplication/configs/ /web/www.mydomain.com/smarty/webapplication/cache/ /web/www.mydomain.com/docs/webapplication/index.php |
Első programunk: Hello világ!
Irjuk meg a sablon fájlt
1 | {$title} |
mentsük el temp1.tpl néven a templates könyvtárba majd, majd írjuk meg első sablon motorunkat, ezt pedig helyezzük el az alapkönyvtárba (mostantól :zsola2) pl. temp1.php néven
1 2 3 4 5 6 | <?php require('./libs/Smarty.class.php'); $smarty=new smarty; $smarty->assign('title','Hello világ!'); $smarty->display('temp1.tpl'); ?> |
a működése: becsatoljuk a smarty-t, majd létrehozzuk az objektumunkat, a következő lépésben hozzárendeljük a title-t a sablonban megadott {$title} változóhoz, a végén pedig megjelenítjük az egészet.
Meg is nézhetjük, nálam http://localhost/zsola2/temp1.php, ha ügyesek voltunk kimenetként láthatjuk művünket a Smarty belerakta a Hello világ! -ot a sablonba, és megjelenítette.
példa: http://ixedik.uw.hu/smarty/temp1.php
forrás: http://ixedik.uw.hu/smarty/pelda1.rarSzerző: toxin