Template engines
Evo i odvojene teme o template engines.
Recite koji koristite, zasto, koje su prednosti, koje mane. Smarty (www.smarty.net) Dobra strane: -Veliki broj mogucnosti, programiranje u samom template fajlu (recimo ponavljenje nekog reda tabele) -Kesiranje -Mogucnost insertovanja celih blokova -Velika mogucnost konfigurisanja i nadogradnje -Poprilicno velika zajednica Lose strane: -Veoma velik -Pozivanjem konstruktora ucitava se gomila fajlova sto dovodi do veceg vremena potrebnog za render stranice -Ukoliko se html preuzima od nekog ko koristi dreamweaver mora se napraviti filter komentara. Tenjin (http://www.kuwata-lab.com/tenjin/) Dobre strane: -Mali je -Brzina,neucitava nepotrebne fajlove -Zgodne pomocne funkcije(checked,selected...) -Mogucnost ponavljanja koristeci php u samom fajlu -Nema sopstveni skript jezik (php je inace sam po sebi template engine) Lose strane: -Los kes sistem,mora se doraditi malo -Nema podrske za pluginove Radio sam i sa dwoo,principu alternativa Smartija. I link ka kompletnom benchmarku http://www.kuwata-lab.com/tenjin/ |
ako mene pitas ovaj Tenjin je gubljenje vremena, ono sto on nudi mozes lako da resis sa par php funkcija i da onda radis u cistom PHP-u bez da ucis ovu cudnu sintaxu... plus dobijes jos brzi kod...
ako se vec cimas sa ucenjem template sintaxe, onda taj template engine treba da ti ubrza i olaksa posao, sto smarty dosta lepo radi... |
Ne bih da zvučim kao Smarty advokat, ali samo par reči (već zvuči zastrašujuće, zar ne? :D )
Citat:
Na onoj drugoj temi si spomenuo da nije za sajtove sa puno poseta. To takođe nije tačno, mogu da ti pokažem dinovske sajtove na kojima smarty super radi, i ne samo da ne smeta nego i pomaže dosta njegov caching sistem, jednostavan a vrlo efikasan. Citat:
A ovaj benchmark koji si stavio ne znači baš ništa, treba videti kako je konfigurisan svaki ovaj template engine pre testiranja, i kako se koriste, pa tek onda izvlačiti zaključak. |
@ivanhoe Sintaksa je malo cudna {==$promenljiva=} mada moze se i promeniti,ostalo je rad sa php (petlje). Slazem se sa ostatkom za brzinu koda i da treba da omoguci brzi rad kako programeru tako i dizajneru.
@bluesman Mozda bi dobar advokat :) Kada je template kompajliran zapravo radi samo echo i proveru da li je template menjan(mozda ima jos nesto). Iskljucivanjem compile_check moze se izbeci overhead za proveru da li je template menjan sto mislim da je bitno na posecenim sajtovima jer smanjuje citanje diska. Na posecenim sajtovima svaki cahing sistem pomaze jer smanjuje opterecenje baze. Ja recimo volim memory caching (memcached) ali za tim nema potrebe svugde niti moze da se koristi na shared hostingu. Na vecini sajtova obican file cache sistem radi super. Sto se tice benchmark-a nemam detaljne informacije,ali recimo ovaj http://alexeyrybak.com/blitz/blitz_en.html ima malo vise informacija(doduse staro je verovatno 3 godine i vecina stvari se verovatno promenila). Ne kazem da je smarty los, zapravo za 90% slucajeva je odlican, ali mislim da nije za sve sajtove. Nadam se da ce se i drugi ukljuciti u diskusiju sa ostalim template engines koji su koristili. edit: Interesuje me najveca posecenost/pregledanost strana sajtova koji koriste Smarty, jer nisam nasao ovakve podatke. Pretpostavljam da je 20k jedinstvenih poseta dnevno mala cifra do koliko ja imam iskustva. |
pogledajte i http://templatelite.sourceforge.net/
|
flickr je meni najveci poznati sajt koji koristi smarty za frontend
|
nakon godina predivnog druzenja sa smartyem, vratio sam se na cisti PHP, uzeo http://www.massassi.com/php/articles/template_engines/ i malo prepravio, i koristim "ljepu" sintaksu (bez { }) da mi se coder ne iztraumira.
|
Ja se ponovo rodio kada sam poceo da koristim Smarty. Odlican je, mozes da napises ili preuzmes modifiere koje je neko vec napisa i koji ti olaksaju gomilu posla. Web dizajneri se ne traumiraju jer nema PHP koda koji ih zbunjuje, ne razbucaju ti stranicu posle najmanje intervencije.
BTW, sadasnji PolovniAutomobili.com su uradjeni sa Smarty bez ukljucenog kesiranja. Pre toga sam koristio prastari FastTemplate. Ukratko, za odradjivanje tezgi, Smarty je najbolje resenje. Inace, u poslednje vreme sa prelaskom na Zend Framework se vracam na native PHP code (jer vise ne tezgarim) ... I prva stvar koju radim jeste da prepisujem najkoriscenije Smarty modifiere kao Helpere (navika je cudo). |
Citat:
Meni je bilo gubljenje vremena ucenje dodatne sintakse kako bih prikazivao isto sto mogu i bez nje. |
da, to je jako tesko... meni trebalo pola sata da naucim smarty i veci deo njegove sintakse. Sve moguce razloge mozes da navedes protiv smarty-ija, ali taj je, bez uvrede, najgluplji moguci
|
Citat:
|
Sto bih se zamarao time kada to MENI nije potrebno.
Sam PHP je template engine i sa dobro organizovanim kodom dodatni parser je nepotreban. A gubljenje vremena je kada kao pocetnik u smarty-u treba da skontas gde je greska prilikom tkzv "pajpovanja" na count php funkciju tj da treba odjednom da se koristi '@'. {$nekiArray|@count}. Slicnih primera ima jos. No ako si ti to ukapirao za pola sata ja ti upucujem sve cestitke :) |
Citat:
Čini mi se da je najveća prednost template engina u PHP-u ta što te teraju da se striktno pridržavaš odvajanja logike od HTML-a, dok rad u čistom PHP-u uvek vuče da se doda neki echo tamo vamo... :) |
PHP nije template engine, PHP je script jezik. Jer ako cemo na isti nacin da posmatramo, onda je i java template engine, i sta ce ti struc i sl ?
I mogao si odmah da kazes ti smatras da ti ej smarty nepotreban, to je objektivnije nego da nisi mogao da ga naucis. I da, ja nisam natprosecno inteligentan, stavise. I to sto sam ja naucio smarty brzo, je samo dokaz da je lak, a ne da sam ja pametan. Cak stavise, bio sam totalni pocetnik u mometnu kad sam ucio smarty, tamo negde 2002/2003 ne secam se vise. I to sa @ lepo pise u dokumentaciji. Sto rece neko, za pismene sve pise. A najveci problem sa pocetnicima je sto ne citaju dokumentaciju, a ja sam imao pomoc od druga Zombija :) da ne pravim pocetnicke greske :D |
Citat:
|
Ili recimo soaps.com koji ima oko milion unique mesecno (valjda je to dovoljno veliko i nije "otaljavanje tezgi")... samo sto je tamo frontend sjeban jer ima 200 reklama na strani pa se sporo ucitava, kada se iskljuce reklame ucitava se munjevito. I jos je iskljucen cache.
|
Ja sam programer operisan od dizajna, a dizajneri su operisani od programiranja. A dovoljno im je pola sata (eventualno sat vremena) da nauce da se snalaze u Smarty sintaksi. A combo programer + dizajner obicno cine ekipu koja odradjuje tezge.
Elem, ono sto je mene dugo mucilo dok nisam skarabudzio neko svoje resenje jeste: kako resavate clientside + serverside validaciju formulara ? |
Citat:
|
Citat:
I zasto taj covek tvoj drug vise ne ucestvuje na forumima? |
Valjda misli na Tomicu? Koliko ja znam on je jos pre par godina prestao da pise po forumima. Isto tako se secam da smo on, ja i jos par ljudi bili prvi koji smo poceli da koristimo smarty, tada je to bilo vrlo "egzoticno".
|
da, mislim na Tomicu. On me i "naterao" da koristim smarty. A kolko mi se svideo, vidi se po tome sto ga i dan danas koristim :)
|
Pa normalno je da ti se svideo kada si potrosio vise od 7 minuta da provalis sve mogucnosti i imao si pomoc da te uputi kako se najefikasnije koristi. Najvise se cudim ljudima koji 'bace pogled' na nesto pa onda kao 'ma to je sranje'. I stvarno ne bih da advokatisem, a jos manje da nekoga ubedjujem da koristi Smarty, svako koristi ono sto mu odgovara, samo onda malo lakse sa teskim recima :)
|
cisto da napomenem, posto neki pricaju da dodatni lejer/klasa usporavaju celu aplikaciju. Iz mog licnog iskustva i iskustava koje sam citao, u ogromnom broju slucajeva, ako ne u apsolutnoj vecini, problem sa brzinom dolazi iz dela koji radi sa podacima (kod + baza).
Smarty trosi mizerne resurse. |
Citat:
|
@bluesman
http://www.devprotalk.com/showthread.php?t=237 (drugi post u temi). Zanima me koji su razlozi bili tada da napises "Zaboravi smarty za to", danas je drugacija razmisaljenje ? Da se razumijemo, i ja koristim Smarty, ne provociram, nego me zanimju razlozi zbog koji si postao Smarty advokat :D (hehe). Sve najbolje. |
Pa tamo je covek mislio da optimizuje sajt i poboljša performanse koristeci smarty, to je druga prica... ono mora da se optimizuje konceptualno a ne programerski, zato sam mu rekao da zaboravi na smarty jer mu smarty u tome neće pomoći.
Inače bio je jedan period kada sam i ja mislio da mi smarty slabi performanse sajta, jedan sam čak i prebacio u "ne-smarty" i ustanovio sam da mu smarty ništa nije smetao, problemi su bili hardverski i konfiguracioni (mysql i apache na serveru). Inače, kod velikih projekata dobra ideja je imati jedan dev. sajt gde sve testiraš i kada sve radi onda postaviš na live... a na live sajtu je konfirugacija smary-ja drugačija: ->debugging = false ->compile_check = false ->force_compile = false ->caching = 2 ->cache_modified_check = false ->use_sub_dirs = false |
Hvala na informacijama za sajtove,nisam znao za flickr.
Moja konfiguracija se malo razlikovala.Drago mi je da nisam jedini koje je pomislio da je smarty slab sa performansama i isprobao nešto drugo,ali očito sam pogrešio :) |
Citat:
meni se cini kao dobar izbor da bude true na production serveru (ja sam je koristio i nisam primetio problem). Ona proveri timestamp i ako kesirani podaci nisu menjani od prosle posete vrati 'Not Modified' umesto da printa ceo fajl, sto ubrzava stvari i stedi na protoku. |
Da, ali i ne :) To najviše zavisi od caching opcije koju koristiš. Za male sajtove (u smislu malo programiranja sa puno podataka iz baze koji se ne menjaju puno) gde se keširaju cele strane, a cache lifetime je veliki jer i nema potrebe da se često generiše novi cache, sa ovom opcijom još malo ubrzava ako je uključen browser cache.
Sa tim može da nastane problem ako ima nekih formulara, neki login ili nešto slično, ali sa nekim statičkim stranama kao recimo spisak area codes za neki state - nema problema. |
Da li je neko probao da smesta kompajlirane fajlove i cache u tmpfs memoriju(/dev/shm) na linuxu?
Da li su performanse bolje,aplikacija brza ? Po logici trebalo bi bar da smanji citanje diska sto je plus svakako. |
jesam ja, ali ne znam kako da proverim da li sam ista dobio :S. A bas mi se ne experimentise na live sajtu :)
|
Vreme je GMT +2. Trenutno vreme je 16:24. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.