Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Smarty templates
Vezi mesajul original
Du-te la pagina 1, 2  Următoare
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Subiectul anterior :: Subiectul următor  
Autor Mesaj
ExcalIbvr



Data înscrierii: 02/Mai/2004
Mesaje: 1107
Locație: Oradea

Trimis: Dum Oct 17, 2004 12:38 pm    Titlul subiectului: Smarty templates  

Smarty - bestial! :D
Reusesc cu succes sa separ codul PHP de HTML, folosind Smarty (aparent, cel putin...), insa dupa ce-am lucrat in mai multe stiluri, cu Smarty, fara Smarty, cod amestecat, cod semi-amestecat (tm) am ajuns sa-mi pun urmatoarele intrebari:
De ce Smarty? De ce template-uri?

Smarty vine cu multe instructiuni foarte utile, fara de care ar fi imposibila realizarea unei aplicatii cat de cat simple ({section}{if} etc.). Da' ce is de fapt aceste instructiuni Smarty? Sunt doar apeluri catre functii PHP...

De ce as folosi {if}-ul Smarty si nu if-ul PHP?

:arrow: exemplu:
an style="color: #000000"><?php //versiunea Smarty {if $nume eq "Johnny"}     <div>Nume: Johnny</div> {/if} //versiunea php <?php   if ($nume=="Johnny")     echo "<div>Nume: Johnny</div>"; ?> 

Thread deschis.
Ce credeti?
Sus  
PCPbSlack



Data înscrierii: 23/Noi/2003
Mesaje: 143
Locație: Ploiesti

Trimis: Dum Oct 17, 2004 3:18 pm    Titlul subiectului:  

O mica paranteza ca introducere. Sincer nu am folosit Smarty pana acum, dar acum chiar trebuie sa invat smarty, asa ca de cateva zile, in timpul liber, stau si citesc documentatii despre template engine-uri. Am ajuns la concluzia ca Smarty este ceea ce caut, cu toate ca am o gramada de lucruri pe care inca nu stiu cum sa le realizez, dar banuiesc ca in timp toate obstacolele vor fi depasite.

De ce instructiuni smarty si nu php? Ei bine eu vad lucrurile asa. Daca ai o instructiune php de genul:
an style="color: #000000"><?php //versiunea php  <?php    if ($nume=="Johnny")      echo "<div>Nume: Johnny</div>";  ?> 
ce te faci daca vine designerul si zice in loc de <div>, <div class="div1">?

Codul va returna rezultate neasteptate :?

In schimb, daca folosesti instructiuni Smarty, lucrul acesta nu se va intampla...
Sus  
un_guru



Data înscrierii: 25/Iul/2004
Mesaje: 153
Locație: Miecurea Ciuc

Trimis: Dum Oct 17, 2004 4:43 pm    Titlul subiectului:  

an style="color: #000000"><?php if($nume=="Ionica")  { echo "<div class=\"div1\">..."; 
si cu asta l-ai dat gata pe designer
Cat despre Smarty, nu folosesc nici eu.
Folosesc numai css pe post template.
Sus  
arond



Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1

Trimis: Dum Oct 17, 2004 9:36 pm    Titlul subiectului:  

un_guru a scris: Folosesc numai css pe post template.

Cum devine chestia asta ? :)

Numa' bune.
Sus  
PCPbSlack



Data înscrierii: 23/Noi/2003
Mesaje: 143
Locație: Ploiesti

Trimis: Dum Oct 17, 2004 9:44 pm    Titlul subiectului:  

Dap, buna intrebare. Poate un_guru a descoperit ceva ce va revolutiona universul PHP.

Scuzati sarcasmul, dar daca exista ceva mai simplu decat Smarty, si care sa se bucure de aceeasi popularitate in randul comunitatii php, dar totusi sa fie la fel de puternic, atunci poate (un_guru) ne va lumina.

Cu toate ca nu cred ca este cazul.
Sus  
un_guru



Data înscrierii: 25/Iul/2004
Mesaje: 153
Locație: Miecurea Ciuc

Trimis: Dum Oct 17, 2004 11:24 pm    Titlul subiectului:  

nu e cazul, lumina este destula, pur si simplu nu folosesc template-uri.
un fisier *.css poate schimba complet aspectul site-ului. Desigur ca nu face ce face un template engine ...

alte surse de lumina mai doriti?
Sus  
ExcalIbvr



Data înscrierii: 02/Mai/2004
Mesaje: 1107
Locație: Oradea

Trimis: Dum Oct 17, 2004 11:50 pm    Titlul subiectului:  

:arrow: Uite... ideea mea era ca despartirea codului HTML de PHP este, de fapt, o pseudo-despartire. Ea doar pare sa existe. Ar exista in realitate, daca HTML ar pune la dispozitie instructiuni de control (if, for, while etc.).

Pana acum 3 saptamani ziceam: "templates? Neeeh... merge bine si fara!". Totusi, n-am vrut sa las domeniul neexplorat, asa ca am aplicat metodologia asta la ultimul meu proiect >> am fost placut surprins de rezultate!

Pe langa toate astea, Smarty foloseste un cache, asa ca afisarea paginilor ce folosesc Smarty ar trebui sa fie mai rapida!

[ to be continued ]
Sus  
kokosanu



Data înscrierii: 16/Mai/2004
Mesaje: 59
Locație: Cluj-Napoca

Trimis: Mar Oct 19, 2004 1:23 pm    Titlul subiectului:  

ca sa raspund la ultimul dialog, ar trebui sa puteti face diferentierea clara intre design si functionalitate.

Designul se refera doar la aspect si nu la existenta unui control sau a unui text pe pagina in funtie de preferinte.

Functionalitatea decide ce este afisat, si nu designul.

Va garantez ca la majoritatea designerilor daca le bagi instructiuni de control in pagina o sa fiti gadiliti toata ziua cu ce insemna chestia aia de fiecare data cand se intalneste cu ea, indiferent daca i-a mai fost spus sau nu inca o data.

Intr-un mediu de dezvoltare bine pus la punct exista trei categorii de oameni pentru un proiect web:
programatorii - se ocupa de functionalitate
programatorii HTML - se ocupa de punerea in limbaj HTML al designului (incluzand functionalitate pe client)
designerii - care fac doar imaginea produsului

Si raspunzand la intrebarea de la inceput, sa incluzi instructiuni de control in design e gresit, dar nici sa pui design in cod php nu e bine, iar solutia e oferita de template-uri. Adica incarci un template chiar daca contine doar o linie de text.

Din pacate smarty ofera mai mult decat e necesar pentru asa ceva si induce erori de proiectare a aplicatiei.
Sus  
PCPbSlack



Data înscrierii: 23/Noi/2003
Mesaje: 143
Locație: Ploiesti

Trimis: Mar Oct 19, 2004 1:30 pm    Titlul subiectului:  

kokosanu ai cam lasat post-ul sa se termine fara o concluzie. dupa ultima fraza eu cred ca totusi ar merge un "insa", in care sa ne spui si noua ce este mai bun decat smarty la ora actuala; adica ceva care sa nu introduca nici macar o instructiune de control in pagina astfel incat toti "programtorii HTML" sa fie fericiti. :?:
Sus  
arond



Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1

Trimis: Mar Oct 19, 2004 3:01 pm    Titlul subiectului:  

Problema, cred eu, se structureaza altfel.

Trebuie facuta deosebirea intre "programming logic" si "presentation logic", pentru ca un motor de template-uri care sa nu aiba deloc elemente de control (if, loop, etc) este aproape complet nefolositor.

Programming logic - logica/codul care tin de manipularea datelor, si asa ceva NU TREBUIE sa apara in template-uri

Presentation logic - logica/codul care tin de prezentarea datelor, si asa ceva trebuie sa apara NUMAI in template-uri

Nu cred ca s-a inventat vreun sistem de template-uri care sa te fereasca de tentatia de a include "programming logic" in template-uri si viceversa.

Pana la urma, totul se rezuma la disciplina. Cat, cum si unde folosesti.

Ca sa facem o analogie (idioata, de altfel :)) e cam ca la masini: nu s-a inventat masina fool-proof. Daca tii neaparat tot poti sa rastorni o masina, oricat ar fi ea de sigura.

Numa' bune.
Sus  
kokosanu



Data înscrierii: 16/Mai/2004
Mesaje: 59
Locație: Cluj-Napoca

Trimis: Mar Oct 19, 2004 5:16 pm    Titlul subiectului:  

psoftinc a scris: kokosanu ai cam lasat post-ul sa se termine fara o concluzie. dupa ultima fraza eu cred ca totusi ar merge un "insa", in care sa ne spui si noua ce este mai bun decat smarty la ora actuala; adica ceva care sa nu introduca nici macar o instructiune de control in pagina astfel incat toti "programtorii HTML" sa fie fericiti. :?:

N-ai inteles nimic din tot ce am zis, banuiesc ca nu ai ajuns in faza de proiectare a unei aplicatii ci te bagi ca boul inainte in dezvoltare.

Ideea era ca intrebarea pusa la inceput denota o gandire deficienta din punct de vedere al proiectarii, si intelegerii utilitatii template-urilor.

Nu are rost sa discutam calitatea engine-urilor pt ca pana la urma fiecare il foloseste pe cel care se potriveste cel mai mult ideii lui de programare..
Sus  
un_guru



Data înscrierii: 25/Iul/2004
Mesaje: 153
Locație: Miecurea Ciuc

Trimis: Mar Oct 19, 2004 5:31 pm    Titlul subiectului:  

alo, domnu kokosanu ...
nu e nevoie sa sari la gatu' omului care-si spune parerea ...

ca pana la urma nici in ultimul "post" n-ai spus nimic
Sus  
PCPbSlack



Data înscrierii: 23/Noi/2003
Mesaje: 143
Locație: Ploiesti

Trimis: Mie Oct 20, 2004 7:17 pm    Titlul subiectului:  

Citat: N-ai inteles nimic din tot ce am zis, banuiesc ca nu ai ajuns in faza de proiectare a unei aplicatii ci te bagi ca boul inainte in dezvoltare.

dl kokosanu, imi pare sincer rau daca fraza mea te-a cam lezat in orgoliul propriu, si imi cer scuze pentru asta, insa nu cred ca m-am dat mare cunoscator de template engine-uri pentru ca nu sunt.

eu pur si simplu am intrebat daca cunosti un template engine care sa nu foloseasca cod in fisierele de template si astfel sa usurezi munca "programatorului html".

sincer imi pare rau, insa cred ca trebuie sa-ti revizuiesti atitudinea, pentru ca asta da dovada de multa lipsa de profesionalism si vei avea probabil multe de pierdut (ce s-ar fi intamplat daca eram un posibil angajator???!!!???, si probabil ca sunt destui care urmaresc acest forum).

numai bune.
Sus  
arahne



Data înscrierii: 16/Dec/2004
Mesaje: 11
Locație: Bucuresti

Trimis: Joi Dec 16, 2004 11:51 pm    Titlul subiectului:  

Nu cred ca exista o solutie miraculoasa care sa salveze designerii de cosmarul codului si programatorii de scandalurile designerilor... Totul este un compromis.

Noi folosim de aproape un an Smarty si cu un pic de bunavointa, programatorii au inteles ca trebuie sa faca lucrurile cat mai simple si ordonate, iar designerii sa invete ca HTML si codul Smarty nu sunt un capat de tara si se pot invata.

Specializarea excesiva nu cred ca este un raspuns, intrucat face dificila comunicarea.
Sus  
bellarchitect



Data înscrierii: 17/Noi/2004
Mesaje: 14
Locație: Bucuresti

Trimis: Mie Dec 22, 2004 3:09 pm    Titlul subiectului:  

Ideea din spatele template engine-urilor a fost sa separe prezentarea de codul propriu zis, si NU codul php de html.

Ce nu inteleg eu este de ce este oare nevoie sa inveti un limbaj nou de programare, cum este Smarty, care nu face altceva decat sa incetineasca codul. Ca sa nu mai vb de faptul ca editoarele nu prea au syntax highlight pt Smarty.

Si apropo, exemplul de mai sus poate parea chiar grotesc pe langa codul smarty, dar pe de alta parte poate fi scris astfel:

Cod:
<? if ($nume=="Johnny")?>
    <div class="numeclasa">...</div>
<? }?>


Totul depinde de stilul de programare. Si chiar nu mi se pare eq mai intuitiv decat ==.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat Du-te la pagina 1, 2  Următoare
Pagina 1 din 2


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community