Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Smarty - do czego to jest?
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
l0co
Ostatnio miałem trochę pracy w systemie gdzie stosowano ten system szablonów. Strasznie mnie wkurzało, jak chciałem napisać szablon to musiałem oddzielnie zaglądać do manuala od Smarty, żeby wykonać dokładnie te same funkcje co w PHP aby wygenerować szablon. I tutaj moje pytanie, po co takie silniki w ogóle istnieją? Czym się różni:

Kod
<ul>
   {foreach from=$myArray item=foo}
     <li>{$foo}</li>
   {/foreach}
</ul>


od:

Kod
<ul>
   <? foreach($myarray as $foo) : ?>
     <li><?=$foo?></li>
   <? endforeach; ?>
</ul>


Z mojego punktu widzenia, stosując ten system szablonów nakładamy sobie kolejną warstwę abstrakcji na naszej aplikacji (w stosunku do kodu PHP), która nie wnosi kompletnie nic nowego, a jeszcze trzeba się jej dodatkowo uczyć. A może o czymś nie wiem?

Dla przykładu, moja biblioteka systemu szablonów wygląda tak:

Kod
             function includeTemplate($name, $p) {
               include($name);
             }
            
             // Załadowanie templatu z parametrami
             $a = []; // Parametry
             $a['PARAM'] = 'VALUE';
             includeTemplate('szablon.php', $a);


No i nasz szablon.php:
Kod
<div><?=$p['PARAM']?></div>


Zamieniamy '<?' na '{' ? Czy za taką cenę warto uczyć się kolejnego języka?
mike
Cytat(l0co @ 1.09.2007, 14:40:29 ) *
I tutaj moje pytanie, po co takie silniki w ogóle istnieją? Czym się różni:(...)
1. Żeby oddzielić logik od wizualizacji.
2. Niczym.

Smarty są przereklamowane i poszły o wiele za daleko.
Bo rozumiem proste przeniesienie danych i pomoc w wizualizacji, ale Smarty pozwalają na wiele za dużo.
Przez to są nawet tacy co określają je językiem. LOL

Najlepsze szablony to szablony PHPowe.
Z helperami takimi jak w RoR albo w Symfony.
l0co
Językiem to jest za dużo powiedziane. Powiedzmy: składni
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.