 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| 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 |
|
| |
|