View previous topic :: View next topic |
Author |
Message |
carr
Joined: 13 Nov 2003 Posts: 1397 Location: Karlovac
|
Posted: 05.11.2004 12:03 Post subject: php: templating, kada i zasto? |
|
|
ovako, kada i zasto koristiti templateove, kao recimo smarty?
vidio sam da je maxy nesto prica, meni trebaju iskustva iz prve ruke u kojim uvjetima je ih dobro koristiti, a u kojima ne..
hvala. |
_________________ Bolje biti malo lud, nego malo pametan. |
|
Back to top |
|
|
maxy
Joined: 07 Sep 2003 Posts: 894 Location: Zagreb
|
Posted: 05.11.2004 12:33 Post subject: |
|
|
hm, ovo je sad osjetljiva tema..
moram sad nesto reci o smartyu.
za smartya mislim da je kompletno i totalno nepotreban. zasto?
pa php je sam po sebi template engine.
glavna poanta je maknuti HTML tagove iz php fajlova (odnosno fajlova koji sadrze php kod koji radi nesto).
sad, uzmes smarty i moras naucit njegovu sintaksu kako bi opce slozio smarty template.
smarty ima neke weird tagove kolko se sjecam pa onda u nazovihtmlu imas kvaziphp tagove.
nakon sto napravis taj template sa ifovima i for petljama onda moras upogonit smarty da to pretvori u nativni php i kad to pogledas -> totalno nesto necitko.
sad, sto si ti napravio?
uzo si smarty, naucio njegovu sintaksu, napravio template i onda ti je smarty to sve ljepo "parsirao" u php i kad otvoris jedan takav sredjeni fajl - wtf? nemres citat to!
i kaj sad? oces nest editirat - nazad otvaraj template fajl, idi se sjeti sintakse, idi napravi promjene, pa opet malo parsiraj...
zasto nisi mogao recimo u php fajl utrpat html i echoat to?
dobis ISTU stvar.
tolko o odvajanju HTML-a od php-a. samo si napravio neke template fajlove koji sadrze jos vise necitljivog koda i sve si na kraju inkorporirao u php...
ne znam da li sam dovoljno istaknuo taj jedan meni totalno nelogican korak pri koristenju smartya.
idemo dalje, citava poanta template enginea je navodno da se odvoji html od php-a, odnosno da u php fajlovima ima sto manje ili da uopce nema html-a a da u nekim template fajlovima stoji html.
ok, sad - ostali template enginei.
poanta je dakle odvojit html od php-a i za to postoji dosta veliki broj template enginea.
neki od njih su npr. phpbb-ov template engine, patTemplate (www.php-tools.de) te invision board template engine (ovako odokativno).
necu pricati kako se koristi neki od njih niti cu reci zasto koristiti neke od njih nego cu napomenuti sljedecu stvar - ti template enginei su USKO povezani sa php-om i automatski su template fajlovi ograniceni na upotrebu sa doticnim tpl engineom i tu nam malo pada u vodu citava prica o cross-platformingu.
sljedeca stvar bi bilo xml templejtiranje - sa xml-om napravis template i sa XSL-om ga transformiras u bilo koji oblik (u nasem slucaju mi cemo to transformirati u html).
posto je xml razumljiv svakome svugdje - ti prakticki mozes uzeti XSL stylesheet te koncept kako strukturirati XML fajl te obavit transformaciju na ASP.NET-u makar si prije koristio recimo AMP platformu.
treba uzeti u obzir da su template-driven sajtovi malo tezi za procesiranje jer ukljucuju parsanje dodatnog fajla pa onda serviranje htmla umjesto da se odma servira html.
zbog tog jednog koraka mozes ostvariti brze upgradeove pojedinih stvari na sajtu ali ti je tradeoff u vremenu procesiranja.
necu ulaziti sada u price o performansama, nego cu zakljucit pricu:
- imho, smarty pobija citav smisao za koristenje template enginea pa ga treba izbjegavati
- treba razmisliti da li je template engine DOISTA potreban jer tjera sistem da radi vise kako bi servirao stranicu.
- treba razmisliti da li koristiti language-specific template sistem ili koristiti XML + XSL shemu
dosta toga sam napisao, ne da mi se pregledavati da li sam nesto ponovio 3-4 puta pa me ispricajte zbog eventualnih ponavljanja |
|
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 05.11.2004 17:56 Post subject: |
|
|
Meni je Smarty skroz kul
Po mom mišljenju Smarty bi se trebao koristiti u većim projektima gdje bi vizualni dizajn trebao biti odvojen od programerskog dijela... Drugim riječima, programer programira i šalje varijable, polja itd. u template gdje ih je dizajner implementirao kako god ga je volja (smarty-eva sintaksa prvenstveno je namijenjena vizualnom formatiranju tih vrijednosti)
Za male projekte Smarty nije potreban, osim ako se u bliskoj budućnosti namjerava mijenjati dizajn ili raditi kompletan novi -- ako se od početka koristio smarty, to će moći biti izvedeno bez intervencije programera
Smarty ima stvarno korisne funkcijice i pluginove koji se mogu lako iskoristiti (bez pisanja php koda, naravno; template-i su neki kvazi-simple-php kao što je Maxy rekao) |
|
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 05.11.2004 18:01 Post subject: |
|
|
maxy wrote: | - treba razmisliti da li je template engine DOISTA potreban jer tjera sistem da radi vise kako bi servirao stranicu. |
Nisi spomenuo Smartyev compiling/caching i moguću iskoristivost Zend akceleracije (ili sličnog) nakon toga
Quote: | - koristiti XML + XSL shemu |
i to je isto vrijedno spomena... pogotovo jer danas nema stvari koja ne prepoznaje XML |
|
|
Back to top |
|
|
gog
Joined: 18 Jun 2004 Posts: 679 Location: zagreb
|
Posted: 05.11.2004 20:13 Post subject: |
|
|
Nisam nikada radio sa smarty-em iako mi je bilo neko vrijeme na to-do listi ;D
Ja kada radim nešto koristim vlastiti "template engine", dohvatim sve podatke koji su mi potrebni iz baze i na kraju includam stranicu koja izgleda otprilike ovako (slijedi skraćena i izmišljena verzija):
Code: |
.
.
.<title><?=$naslov?></title>
.
<?include("header.php")?>
.
.
<?include("izbornik.php")?>
.
.
.
<?=$sadrzaj_stranice?>
<?include("footer.php")?>
|
Meni sasvim dovoljno, ionako se trudim za dizajn koristiti samo css, tako da ako mi je markup kvalitetno napravljen pri redizajnu baš i nemam puno što mijenjati. |
|
|
Back to top |
|
|
maxy
Joined: 07 Sep 2003 Posts: 894 Location: Zagreb
|
Posted: 05.11.2004 20:28 Post subject: |
|
|
suljo, smarty je najgore rjesenje moguce.
sad cu ponovit ono sto sam napiso u kilometarskom postu
dakle, hoces php u fajlu a.php i html u fajlu a.html.
uzmes smartya -> on napravi kupus od html-a i php-a.
moras mu ucit sintaxu.
dolazi sa manualom koji opce nije nesto manji od manuala samog php-a
njegov "caching" i "kompajliranje" su ljepsi naziv za produciranje tog kupusa.
na kraju niti dobijes fajl a.php bez html-a niti fajl b.html bez php-a.
dobijes kupus od toga.
ako treba koristiti template engine onda bi ajmo rec ispravan nacin bio da se pod:
a) upotrijebi sam php kao template engine (kao sto to gog radi donekle)
b) upotrijebi dodatna tehnologija (XML+XSLT)
c) upotrijebi neki drugi template engine koji doista cini razdvajanje html-a od php-a (dakle ne smarty)
meni je (osobno) smarty apsurdan.
mozda se cini da namecem stajaliste ali koristiti nesto sto te tjera da ucis novu sintaxu, mixas html sa nekim cudnim tagovima koji podrzavaju neke funkcije nalik php-ovima i da na kraju svega dobis kupus - nije mi to logicno.
smarty -> no. |
|
|
Back to top |
|
|
gog
Joined: 18 Jun 2004 Posts: 679 Location: zagreb
|
Posted: 05.11.2004 22:36 Post subject: |
|
|
Ima netko neki dobar link gdje su objašnjene osnove XML+XSLT, tipa zašto, prednosti i potrebni alati... |
|
|
Back to top |
|
|
maxy
Joined: 07 Sep 2003 Posts: 894 Location: Zagreb
|
|
Back to top |
|
|
_butch
Joined: 10 Sep 2003 Posts: 870 Location: Maichno, Krlovc
|
Posted: 06.11.2004 00:52 Post subject: |
|
|
Sveima svoje mane i prednosti..
(*te = templating engine, redi jednostavnosti pisanja, a ne i citanja )
U jednu ruku koristenje *te ti je ful korisno (klasika : odvajanje dizajna od koda), usteda vremena bla bla
Sada malo losih strana - ajmo i smarty ukljucit u to.
Svaki templating engine ima svoj "jezik" - vrijeme na ucenje toga i nauciti neke cake (no to bas i nije losa strana.. jako )
Narafno *te mozemo shvatiti kao i jedno usko grlo cijelog procesa..
Dok bi se "normalnim" putem samo izvrsio kod u html i gotovo, ovdje php izvrsava kod pa zove(recimo) smarty-a pa on jadnik prevodi sve da bi nase okice to mogle vidjeti.. to xtra vrijeme.
Naravno smarty nije "the" choice.
No nisam upoznat bas sa ASP (il ASP.Net, jesi posto dotNetan?) templating enginima.
U svaki slucaj radis malo veci sajtic uklopi si jeda templating engine.. Misli dugorocno
Naravno maxy je to sve lijepo objesnio, cestitam |
_________________ FRENCH GUARD: No chance, English bed-wetting types.
I burst my pimples at you and call your door-opening request a silly thing, you tiny-brained wipers of other people's bottoms! Flikrac |
|
Back to top |
|
|
carr
Joined: 13 Nov 2003 Posts: 1397 Location: Karlovac
|
Posted: 06.11.2004 17:17 Post subject: |
|
|
a kak uopce smarty funkcionira, jel to samo skup nekih funkcija koje formatiraju ispis, jel to klasa, modul neki? samo se inkluda u stranicu ili?
kak uopce funkcioniraju moduli u php-u?
pitam jer veli maxy da je bolje svoj templating napraviti... |
_________________ Bolje biti malo lud, nego malo pametan. |
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 06.11.2004 17:56 Post subject: |
|
|
Smarty je klasa i includa se u stranicu. Princip je takav da u php-u odradiš programerski dio, spremiš u klasu varijable koje služe za output i jednom od metoda te klase pozoveš template stranicu, koja koristi smartyevu sintaksu da prikaže taj sadržaj u html-u.
Ovo je uzeto sa smartyevog crash coursa:
INDEX.PHP Code: | include('Smarty.class.php');
// create object
$smarty = new Smarty;
// assign some content. This would typically come from
// a database or other source, but we'll use static
// values for the purpose of this example.
$smarty->assign('name', 'george smith');
$smarty->assign('address', '45th & Harris');
// display it
$smarty->display('index.tpl');
|
INDEX.TPL (template file, pozvan je u zadnjoj liniji php-a) Code: | <html>
<head>
<title>User Info</title>
</head>
<body>
User Information:<p>
Name: {$name}<br> //tu će se echo-ati 'name varijabla'
Address: {$address}<br> //tu će se echoati adresa
</body>
</html> |
Ovo je samo princip. Dizajner korištenjem smarty-eve sintakse ima na raspolaganju tonu korisnih funkcija i pluginova koji formatiraju taj sadržaj kako im paše, i to po meni čini pravu moć smartya |
|
|
Back to top |
|
|
maxy
Joined: 07 Sep 2003 Posts: 894 Location: Zagreb
|
Posted: 06.11.2004 18:17 Post subject: |
|
|
zasto ne bi imao ovo:
Code: | <html>
<head>
<title>User Info</title>
</head>
<body>
User Information:<p>
Name: <?php echo $name; ?><br> //tu će se echo-ati 'name varijabla'
Address: <?php echo $address; ?><br> //tu će se echoati adresa
</body>
</html> |
1.) eliminiras include smartya -> dobis na performansama
2.) eliminiras upotrebu regular expressiona -> dobis na performansama
ovo je imho uzasna upotreba template enginea. mjenjas <?php echo ?> sa {}
ne vidim razlog zasto ne bi umjesto viticasting zagrada u template fajlu stajao <?php echo ?>..
osim tog, sto kada imas template file za npr. vijesti? tamo ti se neki djelovi moraju ponavljati...
samo bi htio reci da ja NISAM protiv template enginea nego protiv uporabe istih tamo gdje ne treba.
gledam cisto sa strane performansi, ne sa nekakvih osobnih preferenca.
suljin primjer je po meni jako losa upotreba template enginea jer je upotrebljen gdje ne treba. |
|
|
Back to top |
|
|
el8
Joined: 22 Sep 2003 Posts: 6
|
Posted: 06.11.2004 18:22 Post subject: |
|
|
o template enginima sam procitao 20ak textova i threadova od preko 50ak postova. Bilo je razlicitih misljenja, i onih za i onih protiv koristenja template engina. Uglavnom niti jedna strana nije prevladala jer je uvijek netko iznio neke argumente i rasprava je isla u mnogo smjerova. PHP je sam po sebi idealan template engine ako se koristi kao sto je GOG opisao. Nedostatak je sto mozda imalo malo vishe posla no ne unosi se nikakav nepotrebni overhead.
Sto se tice smarty-a i feature-rich t. engina njihovim koristenjem se skracuje vrijeme developmenta jer vecina stvari postoji vec napravljena, kao primjer uzeti cu generiranje select boxova za odabir datuma, u manualu pogledate parametre ubacite ih u tag i voila. Time ste si ustedili malo vremena no unijeli ste veliki veliki overhead. (Znam jer sam mjerio execution timing sa xdebug modulom). Za mene to su dirty hackovi.
smarty je klasa koja se includa i inicijalizira na stranici. Uglavnom koristi samo par metoda, assign za pridruzivanje varijabli templateu, fetch za dohvat procesiranog templatea i display za njegov prikaz. Inace klasa ima 60ak+ Kb i includa se prilikom svakog requesta.
Ukoliko koristite recimo mmcache ili slicni bytecode cache onda to i nije toliko bitno posto PHP ne procesira ponovno klasu i s obzirom na to site koji je programiran radi brzo.
Svaki template prilikom prvog prikazivanja biva "compiliran" u kupus kao sto je maxy naveo. Proces se sastoji od parsiranja pozvanog templatea. Compiler clasa ucitava dodatne klase. Uglavnom puno, jako puno klasa. Npr. ako u pozvanom templateu koristish html_select_date template tag, prilikom generiranja ocitati dodatnu klasu koja "zna raditi" s tim tagom i tako za svaki tag. Kada procesiranja zavrsi template se sprema u cache (ukoliko je ukljucen). Ovaj proces je malo zahtjevniji ali se samo jednom ponavlja.
Sto se tice svog t. engina, to ti ne bih savjetovao jer ces uvijek htjeti dodati josh samo jedan feature i zabloatati cesh engine. Govorim iz iskustva i iskustva drugih ljudi. Osim ako ne zelish to uciniti za vjezbu
Meni se osobno svidjaja WACT project - http://wact.sf.net
Evo i detalji o njihovom template enginu i arhitekturi:
http://wact.sourceforge.net/index.php/TemplateComponentArchitecture
http://wact.sourceforge.net/index.php/TemplateSyntax
btw na sitepoint forum-u mozesh procitati jako jako korisne informacije u php developmentu: http://www.sitepoint.com/forums/forumdisplay.php?f=147
probaj malo traziti predhodne postove o template enginovima
pozdrav! |
|
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 06.11.2004 18:38 Post subject: |
|
|
maxy wrote: | suljin primjer je po meni jako losa upotreba template enginea jer je upotrebljen gdje ne treba. |
Sulien wrote: | Ovo je samo princip. Dizajner korištenjem smarty-eve sintakse ima na raspolaganju tonu korisnih funkcija i pluginova koji formatiraju taj sadržaj kako im paše, i to po meni čini pravu moć smartya |
|
|
|
Back to top |
|
|
ylodi
Joined: 14 Nov 2003 Posts: 90
|
Posted: 06.11.2004 23:39 Post subject: |
|
|
maxy wrote: |
poanta je dakle odvojit html od php-a i za to postoji dosta veliki broj template enginea.
neki od njih su npr. phpbb-ov template engine, patTemplate (www.php-tools.de) te invision board template engine (ovako odokativno).
necu pricati kako se koristi neki od njih niti cu reci zasto koristiti neke od njih nego cu napomenuti sljedecu stvar - ti template enginei su USKO povezani sa php-om i automatski su template fajlovi ograniceni na upotrebu sa doticnim tpl engineom i tu nam malo pada u vodu citava prica o cross-platformingu.
|
1. Pri odabiru template enginea ja sam nekoliko puta eliminirao Smarty uglavnom zbog razloga koje si i ti naveo.
2. Po čemu su ti TE-ovi usko povezani s php-om a Smarty nije? To što su ti predlošci ograničeni samo na upotrebu s dotičnim TE-om nema veze s cross-platform aplikacijama. Isti TE radi i pod Windowsima i pod UNIX/Linuxom. Mislim da si malo pobrkao lončiće, spominješ pogrešan pojam na pogrešnom mjestu.
maxy wrote: |
sljedeca stvar bi bilo xml templejtiranje - sa xml-om napravis template i sa XSL-om ga transformiras u bilo koji oblik (u nasem slucaju mi cemo to transformirati u html).
posto je xml razumljiv svakome svugdje - ti prakticki mozes uzeti XSL stylesheet te koncept kako strukturirati XML fajl te obavit transformaciju na ASP.NET-u makar si prije koristio recimo AMP platformu.
|
AMP? Misliš na Apache/MySQL/Php? U web okruženju je predviđeno da se kombinacija XML + XSL koristi na taj način da se sve to lijepo zajedno pošalje pregledniku, a on onda izvrši transformaciju u html. Jasno to se može raditi i na serverskoj strani ali ti koji zapomažeš za performansama ovdje si ostao tih a ovo je najzahtjevnija kombinacija. Server bi trebao napraviti xml (govorimo o stranicama s dinamičkim sadržajem koji se stalno mijenja pa je nužno povući podatke iz baze za svakog korisnika), pa bi na osnovi xsl-a trebao kreirati html i onda radi slanje tog html-a korisniku. Parsanje xsl-a je kompliciranije od zamjene varijabli u predlošku.
maxy wrote: |
treba uzeti u obzir da su template-driven sajtovi malo tezi za procesiranje jer ukljucuju parsanje dodatnog fajla pa onda serviranje htmla umjesto da se odma servira html.
zbog tog jednog koraka mozes ostvariti brze upgradeove pojedinih stvari na sajtu ali ti je tradeoff u vremenu procesiranja.
necu ulaziti sada u price o performansama, nego cu zakljucit pricu:
- imho, smarty pobija citav smisao za koristenje template enginea pa ga treba izbjegavati
- treba razmisliti da li je template engine DOISTA potreban jer tjera sistem da radi vise kako bi servirao stranicu.
|
Predložak se ne mora uvijek parsati, neki inteligentniji TE će to napraviti samo jednom, nakon promjene predloška, a dalje će koristiti isparsani predložak. Vrijeme procesiranja kod TE-ova nije toliko kritično kao što ti impliciraš ako se baš i svaki put parsa predložak. Poanta je da TE omogućava brži razvoj (kod uvježbanog tima) ali ono što je još važnije: izmjene i održavanje je jednostavnije, efikasnije i brže. Odvajanje PHP-a i html-a je bitno kod rada u timu gdje dizajner radi html, a programer programira. Na taj način oni mogu, ako su prethodno dobro postavili sistem, istovremeno početi s radom na web aplikaciji, programer ne mora čekati da dizajner završi html već piše onaj dio koda koji nema direktne veze s prikazom (tzv. business logic layer)...
Ja jesam pristalica optimiziranja i neću pisati bloated aplikaciju, ali cijena dodatne memorije ili procesora na serveru je danas manja od nekoliko sati rada developera. Jeftinije je pojačati server nego izgubiti nekoliko dana na optimiziranje.
Samo kao ilustracija, imam Celeron566 kao lokalni testni server na kojemu sam neki dan radio jedan benchmark zbog potrebe da obrazložim i dokažem jedno svoje stajalište. Web aplikacija na kojoj sam testirao koristi moj vlastiti TE. Mjerio sam na klijent strani i ispalo je da je za zahtjev serveru, obradu zahtjeva i primanje rezultata trebalo 4ms (milisekunde). Znači da je u tim uvjetima server sposoban odraditi 250 zahtjeva u sekundi. Koliko vas radi stranice koje imaju takav promet? Sad zamisli da je umjesto C566 u računalu neki jači procesor. Ili da PHP još koristi i Zend encoder ili nešto slično?! |
|
|
Back to top |
|
|
maxy
Joined: 07 Sep 2003 Posts: 894 Location: Zagreb
|
Posted: 07.11.2004 12:24 Post subject: |
|
|
Quote: | AMP? Misliš na Apache/MySQL/Php? U web okruženju je predviđeno da se kombinacija XML + XSL koristi na taj način da se sve to lijepo zajedno pošalje pregledniku, a on onda izvrši transformaciju u html. Jasno to se može raditi i na serverskoj strani ali ti koji zapomažeš za performansama ovdje si ostao tih a ovo je najzahtjevnija kombinacija. Server bi trebao napraviti xml (govorimo o stranicama s dinamičkim sadržajem koji se stalno mijenja pa je nužno povući podatke iz baze za svakog korisnika), pa bi na osnovi xsl-a trebao kreirati html i onda radi slanje tog html-a korisniku. Parsanje xsl-a je kompliciranije od zamjene varijabli u predlošku. |
ja sam naveo XML + XSL kao primjer jer koristenjem XML-a i XSL-a se rjesis ovisnosti o platformi dok radis templateove.
naravno da ako to parsas na serveru - gubis perofmanse. to je bez daljnjeg.
nadalje, ja sam totalno i kompletno protiv smartya. za druge TE nisam nista govorio
sto se tice upotrebe - i sam ih koristim jer se pokazalo da je lakse odrzavati client-side dio i server-side dio.
toliko od mene
idem iskopati jedan linkich sa usporedbom template enginea pa se vratim za koji dan kad to nadjem. |
|
|
Back to top |
|
|
carr
Joined: 13 Nov 2003 Posts: 1397 Location: Karlovac
|
Posted: 07.11.2004 14:30 Post subject: |
|
|
maxy wrote: | nadalje, ja sam totalno i kompletno protiv smartya. za druge TE nisam nista govorio
sto se tice upotrebe - i sam ih koristim jer se pokazalo da je lakse odrzavati client-side dio i server-side dio. |
ok onda.
koji TE da koristim? ja sam pitao za smarty jer je to jedini za kojeg sam cuo, najpopularniji je.
koji ti koristis?
nedamise se sad isprobavati 10 TE, otkrivati toplu vodu, vjerujem ljudima na ovom forumu koji su ipak strucnjaci, i ako oni kazu da nesto valja, ja cu se pouzdati u to (bar za prvu ruku )
hvala |
_________________ Bolje biti malo lud, nego malo pametan. |
|
Back to top |
|
|
maxy
Joined: 07 Sep 2003 Posts: 894 Location: Zagreb
|
Posted: 09.11.2004 10:53 Post subject: |
|
|
pa meni je patTemplate sasvim zadovoljavajuc.
www.php-tools.de
ako se odlucis za njega, detaljno prouci primjere. |
|
|
Back to top |
|
|
edgar
Joined: 28 Dec 2003 Posts: 916 Location: Pred monitorom
|
Posted: 09.11.2004 13:39 Post subject: |
|
|
Složio bih se s maxy-em i napomenuo da je jednostavno, zbog načina na koji php i html rade, po mom osobnom misljenju, nemoguce napravit takav template engine u kojem bi ti zaista odvojio kodiranje od html-a. Eventualno, kako je maxy rekao, koristenjem XML-a, ali i tada moras parseru davati dodatni posao. da sve to guta i preslaze u ono što na kraju opet ispadne HTML.
Najefikasniji mi se čini stil u kojem je odvojena izrada dizajna i php koda te naknadno slaganje svega s tim da u php fajlovima ima što manje HTML-a koji se naknadno formatira pomocu CSS-a.
Međutim, zaista je nemoguce savrseno odvojit jedno od drugoga i uvijek imas neki trade-off , te obavezan gubitak na perfomansama bez obzira na sistem.
Jednom, barem pred kraj slaganja, mora doci do kontakta dizajnera i programera, tj do suradnje pri zavrsnom slaganju. Business logic se uvijek moze slagati (u protivnom nesto ne stima s organizacijom) odvojeno od samog dizajna, ali na kraju sama implementacija sustava i prikaza tog sustava je nerazdvojna i međuovisna.
Svašta sam natrackao al valjda u got my point. |
_________________ Digital Genetics | Koote | Nuspojava |
|
Back to top |
|
|
ylodi
Joined: 14 Nov 2003 Posts: 90
|
Posted: 09.11.2004 15:07 Post subject: |
|
|
edgar wrote: | Složio bih se s maxy-em i napomenuo da je jednostavno, zbog načina na koji php i html rade, po mom osobnom misljenju, nemoguce napravit takav template engine u kojem bi ti zaista odvojio kodiranje od html-a. |
Po mojem osobnom mišljenju, baziranom na praktičnim rješenjima, moguće je napraviti takav engine, štoviše ja sam koristim jedan takav, a znam za još nekoliko takvih rješenja.
U predlošcima se nalazi čisti html, a varijable i blokovi su custom tagovi. |
|
|
Back to top |
|
|
edgar
Joined: 28 Dec 2003 Posts: 916 Location: Pred monitorom
|
Posted: 09.11.2004 15:20 Post subject: |
|
|
blokovi i tagovi koje opet moraš parsirati i gdje gubis na perfomansama... dakle u svakom slucaju imas nesto sto moras zrtvovati u svakom sistemu.
Eto, kad bih birao neki sistem, odabrao bih phpBB sustav koji mi se čini najjednostavniji za implementaciju i najugodniji bez pretjeranog kompliciranja.... |
_________________ Digital Genetics | Koote | Nuspojava |
|
Back to top |
|
|
maxy
Joined: 07 Sep 2003 Posts: 894 Location: Zagreb
|
Posted: 09.11.2004 15:56 Post subject: |
|
|
edgar wrote: | blokovi i tagovi koje opet moraš parsirati i gdje gubis na perfomansama... dakle u svakom slucaju imas nesto sto moras zrtvovati u svakom sistemu.
Eto, kad bih birao neki sistem, odabrao bih phpBB sustav koji mi se čini najjednostavniji za implementaciju i najugodniji bez pretjeranog kompliciranja.... |
edgare, ylodijev TE je ako se ne varam - identican phpBB-ovom
iz nekih razloga namjerno nisam ulazio u ostale TE te metode, niti necu. |
|
|
Back to top |
|
|
edgar
Joined: 28 Dec 2003 Posts: 916 Location: Pred monitorom
|
Posted: 09.11.2004 16:06 Post subject: |
|
|
maxy wrote: | edgar wrote: | blokovi i tagovi koje opet moraš parsirati i gdje gubis na perfomansama... dakle u svakom slucaju imas nesto sto moras zrtvovati u svakom sistemu.
Eto, kad bih birao neki sistem, odabrao bih phpBB sustav koji mi se čini najjednostavniji za implementaciju i najugodniji bez pretjeranog kompliciranja.... |
edgare, ylodijev TE je ako se ne varam - identican phpBB-ovom |
Nisam pretjerano detaljno čitao sve postove
Quote: | iz nekih razloga namjerno nisam ulazio u ostale TE te metode, niti necu. |
Pa pomozi čovjeku na sve moguće načine, osim ako zadiru u intimu |
_________________ Digital Genetics | Koote | Nuspojava |
|
Back to top |
|
|
maxy
Joined: 07 Sep 2003 Posts: 894 Location: Zagreb
|
Posted: 09.11.2004 17:07 Post subject: |
|
|
eh, mislim da sam dovoljno rekao
o metodama definitivno necu pricati, niti idejama i sl.
mislim da ne moram objasnjavati zasto.
ideja je tu, alat je tu, readme je tu, znanje je tu - pomjesat to u crnu kutiju i sam smislit kako dalje |
|
|
Back to top |
|
|
Danko
Joined: 16 Sep 2004 Posts: 124 Location: Zagreb
|
Posted: 09.11.2004 17:12 Post subject: |
|
|
Pošto ljudi imaju veliki otpor prema templatingu, odlučio sam napisat par riječi.
Osobno koristim PHPlib templating jer sam skužio da jedini kompletno odvaja PHP i HTML, za razliku od Smartyja i drugih, koji ubacuju logiku u HTML - a to je baš ono što želim izbjeći.
Što je template?
Template je tekstualna fajla koja u sebi sadrži i neka imena varijabli (u vitičastim zagradama). Na primjer:
Code: | Dobrodosli {KORISNIK}! Danas je {DATUM}. Niste bili logirani {BROJ_DANA} dana. |
Vi pomoću PHP skripte dohvaćate tu tekstualnu fajlu sa harda i "parsate" je pomoću Template klase (koju prvo "includate" u svoj PHP i inicijalizirate - za ovo treba znati osnove objektnog programiranja).
Parsati template znači na mjesto varijabli upucati neki drugi tekst - koji može biti dug od par bajta do par stotina kB. Taj tekst kreirate unutar PHP skripte dinamički - npr. neki tekst koji izvlačite iz MySQL baze.
Nakon što parsate gornji template, možete dobit nešto ovako:
Code: | Dobrodosli Ingrid! Danas je 1.1.2005. Niste bili logirani 80 dana. |
Templating nije ograničen samo na web, tj. na HTML fajlove. On može poslužiti u svakoj prilici kad treba tekst ubacivati unutar teksta (mogu se parsati .pdf dokumenti itd.)
Zašto je templating koristan?
Smisao korištenja templatinga je odvojiti dizajn od logike. Programer obično ne želi da mu dizajner brlja po kodu, i obratno.
Zvuči smiješno, ali ono što je mene najviše fasciniralo je to da - od kad sam počeo radit templating - mogu svoj HTML template otvorit u Dreamweaveru i vidjet ga!
I ne samo to: mogu ubacit Javascript behaviur, mogu primit tablicu za rub i mišem je razvuć, mogu ubacit formu, sliku i sve to editirati kao objekte u Dreamweaveru.
Puno mi je ljudi reklo da im je, od kad su počeli radit PHP, Dreamweaver postao suvišan - tj. da im samo smeta. I da su se vratili na Notepad i sl. Razlog tome je sigurno taj da ne mogu vidjet PHP stranicu u WYSIWYG prikazu DW-a i ništa korisno s njom napravit
Moje mišljenje je da je DW revolucionaran program koji je smišljen da olakšava život i treba ga objeručke prihvatit! A templating je jedan veliki korak prema tome...
Protuargumenti...
Ljudi kažu da sve to oni mogu napravit pomoću include() funkcija. Da šta će njima templating i ovo i ono...
Ovako: ja sam radio i na onaj i na ovaj način. A danas ne pomišljam radit bez templatinga.
btw. nitko od zagovornika "inkludanja" mi nemre otvorit PHP stranicu u Dreamweaveru!
U principu je najveći argument protiv napor koji trebaš uložiti da se promijeni tvoja logika programiranja. Jednostavno moraš sjest i proučit kak to radi. Pa onda treba uzet neke svoje funkcije i klase (koje svatko od nas ima kreirane "on his own" i koje su mu najslađe na svijetu) i preuredit ih za taj novi način rada. Treba izgubit tjedan-dva vremena na to - ali isplati se!
Razlozi za
1) Promjene
Zove te čovjek kojem si napravio stranice prije xy mjeseci da mu na stranici promijeniš neku sliku, ili boju stranice, ili... Moraš priznat da je muka otvorit PHP fajl od 500 linija i po onim "echo"-ima tražit gdje on to ispisuje sliku. Puno je lakše je s Dreamweaverom otvorit "stranica.tpl" i u WYSIWYG modu obrisat sliku i stavit drugu. Automatski imaš manji otpor prema promjeni.
2) Skinning
Imaš već gotove stranice koje se tak sviđaju drugoj firmi da hoće sve to isto, samo drukčiji design. No problemo! PHP engine ne diraš - otvaraš samo templejte u Dreamweaveru i editiraš ih, dakle radiš novi "skin".
phpBB je super primjer za skinning.
3) Portal
Ja nemam pojma kak bi napravio portal s gomilom boxova bez da koristim templating i da ga rascjepkam u manje cjeline. Include-ovi? Sretno!
4) Multijezičnost
Isto tak mislim da bih dušu ispustio da moram radit stranice na deset jezika, onak kak se to obično radi: (folder_hr, folder_en, folder_de... ). Ovak samo definiraš gomilu varijabli na ovom ili onom jeziku i ubacuješ ih u jedan te isti template. I opet je phpBB izvrstan primjer za multijezičnost... Vrijedi njuškati po njemu, puno se toga da naučiti..
5) Display
IE, Netscape, 800x600, 1024x768, text only, printer friendly... Pomoću templatinga je full jednostavno napravit različite template-a za svaki različiti browser.
Tu imate par primjera korištenja template-a - i onaj klasični s ispisom tablice (korištenjem blokova i specijalnih komentara unutar HTML-a).
Ak nekoga još kaj zanima - samo nek pita.. |
_________________ dankokozar.com | Adjungo | UnityHR | eDriven |
|
Back to top |
|
|
|