Citat:
Originalno napisao korisnik
Imam utisak da u ovoj diskusiji fali realna distanca... viđenje nekoga ko nije primarno developer a jeste dizajner i uspeva da se snađe u HTML-u. Jer, Smarty po definiciji i jeste dizajniran za takav profil korisnika.
|
Egzaktli
Mada bih ja dodao da Iliji fali jedan veliki projekat koji nije uradio on sam. Tada će pogledati na ove stvari drugim parom očiju
Kada je tako podeljen posao: programiranje | layout, jednostavno ništa ne sme da prelazi crtu između osim samih podataka. Recimo, idealno stanje stvari je da postoji još jedna osoba između koja ih koordinira.
Znači imamo šemu sajta, zna se šta se na kojoj strani radi, programer dobije zadatak podeljen u 2 dela: priprema podataka za output i prijem i obrada primljenih podataka. Njega ne interesuje da li će output biti HTML ili možda šalje podatke u flash, njegov posao se završava u oba pravca sa njegove strane crte. Njega ne interesuje da li će biti ovaj css, ili će menu biti levo ili gore, on čak ne mora ni da vidi kako izgleda sajt dok god hrani frontend podacima koji su zatraženi. Teoretski (ako izuzmemo ljudsku osobinu zvanu znatiželja
) on ne mora nikada ni da vidi sajt a da sajt bude završen uspešno.
Koder (dizajner, ali dizajner je malo više, pa je možda bolje da kažem "onaj koji radi layout") ne mora da zna kako su i odakle podaci došli, on zna šta dobija, kakvu strukturu podataka i prikaže ih kako želi. Isto tako, kada ima input (form) kaže programeru "dobićeš na taj i taj script podatke .a, b, c, treba mi povratna informacija da li je ok. Njega ne interesuje kako je došao do "ok", bitno je da on dobije nazad "ok" ili "error" ili šta god. Ne interesuje ga da li je to php, asp, da li su podaci iz mysql ili iz text fajla, on zna šta dobija i zna šta šalje, šta se između dešava može da bude predmet njegovog fakultativnog interesovanja.
Takvim načinom rada (uz tu treću osobu) programer i "onaj koji radi layout" mogu čak i da budu u svađi, da ne pričaju, pa da uspešno završe posao
Smarty (ili neki sličan tempate engine) je ta veza između njih, dovoljno jednostavan da "onaj koji radi layout" može brzo da ga savlada, a dovoljno kompleksan i promenljiv (expandable) da može da se dobije i više od osnovnog.
Razmislite samo, iz perspektive nekoga ko ne zna programiranje, da li mi je lakše objasniti:
PHP kôd:
<?php echo str_replace("Search", "Replace", $string); ?>
( i meni se desava da pogresim redosled parametara )
ili
HTML kôd:
{$string|replace:"search":"replace"}
ili recimo
HTML kôd:
{$string|lower|spacify|truncate}
ili alternativa ovome što je dinke pričao:
Citat:
<?php
if($nesto)
{
//php code goes here
}
else
{
?>
<html>
<head>
<body>
...
<!-- 100-tinak linija html koda ide ovde a onda -->
<?php
}
?>
|
u smarty je, za jednog ne-programera, daleko čitljivija (naročito ako imaš homesite i syntax highlighting):
HTML kôd:
{if($nesto)}
nešto
{else}
<html>
<head>
<body>
...
<!-- 100-tinak linija html koda ide ovde a onda -->
{/if}