DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   Template engines (http://www.devprotalk.com/showthread.php?t=7603)

razno 15. 06. 2009. 18:29

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/

ivanhoe 15. 06. 2009. 19:05

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...

bluesman 15. 06. 2009. 20:32

Ne bih da zvučim kao Smarty advokat, ali samo par reči (već zvuči zastrašujuće, zar ne? :D )

Citat:

Lose strane:
-Veoma velik
-Pozivanjem konstruktora ucitava se gomila fajlova sto dovodi do veceg vremena potrebnog za render stranice
Kažeš da je veoma veliki? On je veliki onoliko koliko ga velikog napraviš, koliko god smarty ima svojih modifier-a i funkcija, ja sam usput napravio još bar duplo toliko. A ako misliš da ima "veliki fingerprint" kako se to fensi kaže, odnosno da zauzima puno resurasa, to jednostavno nije tačno pošto kada je template kompajliran (ako nije uključeno force_compile, ili nije modifikovan template) poziva se jedna jedina klasa i par core funkcija.

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:

Lose strane:
-Ukoliko se html preuzima od nekog ko koristi dreamweaver mora se napraviti filter komentara.
Nadam se da ovo nisi stvarno stavio kao neki argument :D Da ne komentarišem za džabe.

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.

razno 16. 06. 2009. 01:27

@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.

mangia 16. 06. 2009. 01:55

pogledajte i http://templatelite.sourceforge.net/

Aleksandar.Ilic 16. 06. 2009. 09:06

flickr je meni najveci poznati sajt koji koristi smarty za frontend

zidoo 16. 06. 2009. 09:12

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.

ppavlovic 16. 06. 2009. 09:34

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).

bOkIcA 16. 06. 2009. 09:58

Citat:

Originalno napisao ppavlovic (Napišite 70689)
Ukratko, za odradjivanje tezgi, Smarty je najbolje resenje.

Kakva je to konstatacija?! :1092:


Meni je bilo gubljenje vremena ucenje dodatne sintakse kako bih prikazivao isto sto mogu i bez nje.

Aleksandar.Ilic 16. 06. 2009. 11:30

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

mileusna 16. 06. 2009. 12:01

Citat:

Originalno napisao Aleksandar.Ilic (Napišite 70687)
flickr je meni najveci poznati sajt koji koristi smarty za frontend

Nije baš Flickr, ali i Naslovi.net koriste Smarty.

bOkIcA 16. 06. 2009. 12:09

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 :)

mileusna 16. 06. 2009. 12:23

Citat:

Originalno napisao bOkIcA (Napišite 70694)
Sam PHP je template engine i sa dobro organizovanim kodom dodatni parser je nepotreban.

Moram priznati da je ovo bila i moja reakcija kada sam prvi put od jednog druga saznao za Smarty, u fazonu, pa zar PHP i ne služi za to? No posle sam se nekako navukao.

Č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... :)

Aleksandar.Ilic 16. 06. 2009. 13:55

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

dinke 16. 06. 2009. 14:34

Citat:

Originalno napisao mileusna (Napišite 70693)
Nije baš Flickr, ali i Naslovi.net koriste Smarty.

I Blogodak.com ;)

bluesman 16. 06. 2009. 16:17

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.

ppavlovic 16. 06. 2009. 19:36

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 ?

ivanhoe 16. 06. 2009. 19:46

Citat:

Originalno napisao zidoo (Napišite 70688)
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.

uf, brate, on zapisuje kesh fajlove bez da napravi lock... svaka mu cast na trudu, ali mislim da mora jos dosta da nauci pre nego sto krene da pravi templejt endzine...

bOkIcA 16. 06. 2009. 21:53

Citat:

Originalno napisao Aleksandar.Ilic (Napišite 70700)
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

Nigde nisam napisao da nisam mogao da ga naucim nego da sam skontao da je gubljenje vremena uz moj nacin kodiranja, bilo to 10 minuta ili 10 dana.

I zasto taj covek tvoj drug vise ne ucestvuje na forumima?

bluesman 16. 06. 2009. 23:22

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".

Aleksandar.Ilic 16. 06. 2009. 23:48

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 :)

bluesman 17. 06. 2009. 00:11

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 :)

Aleksandar.Ilic 17. 06. 2009. 10:17

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.

zidoo 17. 06. 2009. 12:33

Citat:

Originalno napisao Aleksandar.Ilic (Napišite 70730)
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.

I ako sam ga izbacio iz upotrebe, potpisujem ovo :)

mb_sa 17. 06. 2009. 18:03

@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.

bluesman 17. 06. 2009. 18:33

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

razno 17. 06. 2009. 19:03

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 :)

ivanhoe 20. 06. 2009. 10:07

Citat:

Originalno napisao bluesman (Napišite 70750)
->cache_modified_check = false

jesi siguran oko ove opcije?

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.

bluesman 20. 06. 2009. 12:54

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.

razno 21. 06. 2009. 23:54

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.

Aleksandar.Ilic 22. 06. 2009. 00:00

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 19:56.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.