DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   Smarty 3 (http://www.devprotalk.com/showthread.php?t=7936)

bluesman 05. 10. 2009. 19:28

Smarty 3
 
Smarty 3 je u alpha, navodno donosi dosta unapređenja, osim što je čist PHP5 kažu da je i brzina poboljšana 2-2,5 puta:

Citat:

  • PHP5 OO design
  • SPEED
  • Object Chaining
  • Exception Error Handling
  • Assigned Data Objects
  • Multiple Template Objects
  • Static Object Access
  • Pure PHP Template Option
  • Powerful Parser/Lexer
  • Tons of Template Syntax Enhancements
  • Improved Data Scoping Features
  • Variable Filters (ie. auto-html-escape)
  • In-template Functions (easy recursion)
  • Template Inheritance
  • PHP Streams Support (per template/variable/include)
  • Smart javascript/css handling (no more {literal} tags)
  • Improved Cache handling (per template/variable/function)
  • Many other things too numerous!

Ja sam probao tu alfu, skinuo sam i postavio, medjutim pocela je da mi prijavljuje puno gresaka, tako da je očigledno da prelaz sa Smarty 2 na Smarty 3 neće biti jednostavan, naročito ako ste "proširivali" smarty svojim funkcijama.

ivanhoe 05. 10. 2009. 20:27

cool, vec sam mislio da je smarty razvoj potpuno umro

bluesman 05. 10. 2009. 20:35

Koliko sam ja video, iza nekih fensi imena kriju se jednostavne izmene, pa tako kada kažu "exception error handlig" tu nema ništa extra, čak je poželjno da postavite svoje default exception handlere jer smary sada umesto "trigger_error" zove "throw new Exception". To je što se tiče pluginova manje-više sve, najveće izmene su u samoj Smarty klasi a kompajler je sada razbijen u kompajler funkcije.

A opet, neke izmene su značajne, već sam primetio dosta promenjenog koda, a kažu da je napisano od nule. Pa da vidimo šta će biti sa tim.

bluesman 06. 10. 2009. 01:22

Evo ovde ima spisak noviteta: http://smarty-php.googlecode.com/svn...ibution/README

Off Topic: Napokon izbacuju {section} koji ionako nije imao veze sa vezom :)


Evo i jedne važne izmene:
The need for {literal} is pretty much going away. Delimiters followed by whitespace will no longer be parsed as a template tag.

To znači da { nesto } neće da generiše smary error već će da ispiše baš to, što je recimo dobro za bilo kakav javascript.

Jedino što ne vidim nikakvu ozbiljnu potrebu za uveđenjem "php" resource, znači template sada može da bude i običan php file, ali u tom slučaju ne funkcioniše built in security, što je manji problem, a veći problem je što ne funkcionišu modifiers u php templates.

bluesman 06. 10. 2009. 03:25

Pošto ova tema postaje kao moj blog na kome su zabranjeni komentari, u to ime da nastavim pa ako nekoga interesuje - super:

Namestio sam da mi radi Smarty 3, nije tolika frka kao što sam prvi put pomislio jer mi je izbacivao neke čudne greške tipa "ne postoji modifier default" koji je deo smarty paketa pa je neverovatno da ne postoji, na kraju sam provalio da za plugins dir mora da se navede apsolutna putanja za razliku od ranije kada je bila dovoljna samo relativna putanja.

Morao sam da popravim još par stvari u templates jer sada prijavljuje grešku ako zagrade nisu kako treba, recimo ovo {if $nesto->funkcija ('test') } prijavlujuje gresku jer se pojavljuje space izmedju imena funkcije i zagrade, kao i pre zatvorenog delimitera.

Na kraju sam uradio i malo benchmark, cisto da proverim da li je istina ono sto pricaju o brzinu. Nije to neki naucni benchmark, jednostavno sam po 10-ak puta ponovio sve i dobijao sam skoro uvek priblizno iste vrednosti tako da racunam da je otrpilike tacno:

Smarty 2 (nije kompajliran template):
Total page load: 0.475

Smarty 2 (kompajliran template):
Total page load: 0.319

Smarty 3 (nije kompajliran template):
Total page load: 1.825

Smarty 3 (kompajliran template):
Total page load: 0.122

To znači da je tačno da je smarty 3 kada je kompajliran bar 3 puta brži od kompajliranog smarty 2, ali je zato proces kompajliranja daleko sporiji. Dobio sam jednom i vrednost od 4 sekunde kada template nije bio kompajliran u Smarty 3. Dakle, na LIVE serveru obavezno prekompajlirati template čim se uploaduje neki novi, odnosno izbegavati akcije tipa "clear all compiled" već očistiti samo one koji su izmenjeni (ako je isključen "compile check" kao što i treba da bude na live serveru)

ivanhoe 06. 10. 2009. 05:59

tjah, a ja bas navikao da koristim {section} za ispis podataka iz baze..

bluesman 06. 10. 2009. 12:43

Da, znam, ti, ja i milijardu drugih jer im manual iz nekog razloga forsira primere sa section. To je isto kao što vidiš danas milijardu PHP programera i korisnika koji programiraju sa die() funkcijom - većina primera u PHP manualu su: if (nesto nije u redu) die ();

holodoc 06. 10. 2009. 14:57

Citat:

Originalno napisao bluesman (Napišite 73847)
To je isto kao što vidiš danas milijardu PHP programera

Litar "Knjaza" za izvor ove informacije pa možda proslavimo i sa nečim žestokim kao recimo ruskim kvasom :D

bluesman 06. 10. 2009. 17:08

Znaš da sam pomislio kada sam to napisao da će sada neka cepidlaka od svega što sam napisao do sada da se uhvati za ovo. :) Zašto baš za to? Pa zato što je to najnebitnija reč od svih napisanih. :)

To je, bre, stilska figura a ne statistički podatak.

robi-bobi 06. 10. 2009. 22:50

Kôd:

To je isto kao što vidiš danas <span class="hiperbola">mnogo</span> PHP programera ...


Vreme je GMT +2. Trenutno vreme je 00:36.

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.