jó cikk. munkahelyen is smarty-val dolgozom.
várom a folytatást.
f: @geboleather
jó cikk. munkahelyen is smarty-val dolgozom.
várom a folytatást.
f: @geboleather
még soha nem használtam smarty-t, de így elsőre megmondom őszintén, nagyon nem vágom, mi olyan nagyszerű benne..
Nem mindenkinek jön be még sokadik látásra sem.
Valóban nem érdemes használni, ha nem szeretnéd az programlogikát és a megjelenítést különválasztani. Én már jó pár éve programozok PHP-t, és sokkal könnyebbnek és logikusabbnak találom, ha van valamilyen sablon-motor az alkalmazás alatt. De persze ez is ízlés dolga. Megfelelő függvényekkel hasonló hatást lehet elérni, mint Smarty-val, de ez legalább már kész, ráadásul elég elterjedt.
''Hand of fate is moving, and the finger points to You...''
Hmmm... Én pl. a html felületet 99%-ban egy php-t sem ugató, de jól html gépészkedő csajszival gyártatom, kopipészt szmarti kódrészeket tetetek bele vele. Eredménye: elfogadható (csinos) userfelület, amivel nem nekem kell szívni... Ő dumál a felületböködővel, őt "szivatják" a "kicsit lilásabbra szeretném", meg "nem ennyi hírt akarok egyszerre" jellegű kívánságokkal.
igazából arra gondoltam, hogy az alkalmazáslogika és a megjelenítés különválasztása fontos dolog, de ezt ugyanilyen hatékonyan meg lehet php-val is oldani. pl. a smarty foreach-e helyett pont ugyanazt meg lehet php-ban is írni, ugyanolyan végeredménnyel, ugyanúgy tele lesz szemetelve a html kód, csak a smarty-s cuccok helyett php-s cuccokkal, egykutya.
ismétlem, nem foglalkoztam template rendszerekkel, tehát ha valaki tud ellenérveket, azt szeretettel várom.
tbs - hű de nagyon örülnék, ha nálunk is lenne ilyen ember aki html-t, css-t faragja, a weboldal barkácsolós szakmában ezt szeretem legkevésbé.
[ Szerkesztve ]
(#6) DArchAngel
Sok helyen külön van választva a html és PHP, ahogy tbs írta.
Abban igazad van, hogy mindent meg lehet csinlni Smarty nélkül. Ha folytatom a témát, akkor talán majd látsz olyan példákat, amik felkeltik az érdeklődésed.
Személy szerint én jobban szeretem, ha a PHP kódban csak az adatok kinyerése, manipulálása stb. van, tisztán, átláthatóan, és nem a HTML elemek közül kell kimazsoláznom, hogy akkor most mi, merre, hány méter.
''Hand of fate is moving, and the finger points to You...''
De például nem mindegy, hogy a sablon fájlban kell áttúrnod a kódot mert valamit meg kell változtatni (mondjuk design csere alkalmán) vagy egy PHP-HTML kombóval feltöltött fájlt.
Pontosan ezt akartam leírni, amikor elolvastam a cikket.
A tiszta php-s sablonok épp olyan jók mint a smarty-val készítettek, sőt, gyorsabbak, és könnyebb testreszabni őket szerintem.
Hogy a php-ben nem járatos designer vajon a smarty vagy a php sablonelemeket érti meg jobban nem tudom, ezzel kapcsolatban nincsenek tapasztalataim, de nem látom be, hogy a php-t miért lenne nehezebb.
Ha pedig valóban komoly sablonrendszert akar az ember akkor inkább XSLT.
Az XSLT-t nem ismerem, majd ha lesz időm, ránézek.
Egyszer szeretnék egy összehasonlítást csinálni a Smarty és a "tiszta" PHP között, de sajnos elég kevés időm van. Ez a téma pedig engem is nagyon érdekel. Ha kérhetem, ide várnék teszt eseteket...
[ Szerkesztve ]
''Hand of fate is moving, and the finger points to You...''
Mivel a Smarty php fájlt hoz létre, és azt futtatja le a php értelmezőn, semmiképp nem lehet gyorsabb, mint a tiszta php. Kivéve pesze, ha a fordítóhoz nem használnak gyorstárat, ugyanis a Smarty alapból tartalmazza.
A Smartynak ezzel együtt igen komoly létjogosultsága van akkor, ha a webdesigner nem teljesen megbízható! Ha ugyanis php kódú a template, akkor onnantól rosszindulatú kódot is elhelyezhet akár az oldalon.
Ha viszont a designer belsős és feltehetően az is marad, úgy vélem nem szükséges a Samrty.
Az XSLT egy W3C aljánlás. Voltaképp egy XML alapú sablonnyelv rendkívül széleskörű felhasználhatósággal. Bonyolultabb, viszont sokkal sokoldalúbb mint a Smarty. A bonyolultsága a hátránya is, programozásban képzetlen designer esetén felejtős, márpedig ők rendszerint azok...
Az XSLT előnye, hogy az IE, a FF és az Opera is támogatja, tehát akár egy dinamikus adat és egy statikus sablonfile esetén a böngésző is képes összefésülni. Bár az igazat megvallva még sosem láttam kliens XSLT-re épülő portált.
Inkább az AJAX-ot preferálják.
ok... smarty vs php szerintem:
még nem volt hozzá szerencsém, de ha jól értem:
class tpl {
private $file;
public function tpl($file) {
$this->file = $file;
}
public function disply() {
$vars = get_object_vars($this)
foreach ($vars as $key => $val) {
$key = $val;
}
include($this->file);
}
}
és akkor most csináltam egy egyszerü smarty-t???!!
$t = new tpl("template/ecet.php");
$t->szoveg = "hahoo vilag!";
$t->disply();
ahol az ecet.php:
<html>
<body>
<?echo $szoveg;?>
</body>
</html>
ha ennel többrôl van szó pls. valaki jelezze, mert ha a smarty tényleg csak ennyi (elvben), akkor nem nagy cucc...
iu: a kodot csak példaértékkel, a megértés kedvéért irtam... (lehet benne hiba is!)
mad
Húha, nem gondoltam volna, hogy ide még ír valaki.
A Smarty ennél sokkal többre képes, ha gondolod, nézz utána.
Kódot hirtelen ezt találtam, ez egy foreach a Smartyban, aminek a php oldalon elég egy tömböt megadni, hogy végigmenjen rajta:
<smarty: foreach from=$sablonok item=egysablon :>
<tr>
<td class="color" style="border-bottom-color: white; border-bottom-width: 1px; border-bottom-style: solid;">
<input class="input" type="text" name="leiras[<smarty: $egysablon.sablon_id :>]" size="50" value="<smarty: $egysablon.leiras :>" <smarty: if $egysablon.ervenyes == "f" :> readonly <smarty: /if:>/>
</td>
</tr>
<smarty: /foreach :>
Igen, van benne egy if is. Természetesen ezeket mind megírhatod Te is PHP-ben, de ez már készen van :
''Hand of fate is moving, and the finger points to You...''
Teszt Smarty bevezető