Separarea logicii de continut

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator


Avatar utilizator
ExcalIbvr
Senior Member
Mesaje: 1105
Membru din: Dum Mai 02, 2004 10:56 pm
Localitate: Oradea
Contact:

Mesajde ExcalIbvr » Dum Mai 01, 2005 6:44 pm

Si eu sunt intotdeauna interesat de acest subiect.

Am inceput anul trecut cu Smarty si a fost un pas important.

Sunt sigur ca aurelian ti-ar recomanda, printre altele, DAL (Database Abstraction Layer). ;)

E un subiect bun, asa ca sunt nerabdator sa citesc si opiniile celor mai versati!



aurelian
Senior Member
Mesaje: 833
Membru din: Dum Iun 01, 2003 7:54 pm
Localitate: Bucuresti
Contact:

Mesajde aurelian » Dum Mai 01, 2005 9:59 pm

Intrebari clasice:
-> cat de usor poti adauga o functionalitate noua?
-> cat de usor poti modifica aspectul siteului?
-> ce se va intampla cand cerintele se vor schimba?
-> vei fi in stare sa folosesti/citesti codul respectiv dupa o perioada de timp?

Din proprie experienta:

Folosirea celor 30-40 de functii este un lucru foarte rau. Mai devreme sau mai tarziu se va intampla sa te trezesiti cu doua functii cu nume diferite care au insa o comportament identic. Sau, foarte posibil sa uiti practic de anumite functii sau de comportamentul lor. Mentinera in viata a unui astfel de sistem este foarte grea.
Deci, grupeaza functiile cu comportament asemanator in clase, tine cate o clasa/fisier, documenteaza codul scris (cu phpdoc) fara a exagera.

Ar trebui sa stiu sa utilizez si eu codul scris de tine doar citind numele metodei (functiei) al parametrilor pe care ii acepta si eventual al rezultatului returnat. Nu ma intereseaza cum faci sa ajungi la respectivul rezultat.

Tot din experienta iti spun ca in cadrul unui proiect (mediu-mare) in php lucrul care se va schimba cel mai des va fi modul de prezentare a paginii web. Deci logica ramane de foarte multe ori aceiasi. De aici prima mea recomandare, care practic te va obliga sa nu mai folosesti if/else switch/case (decat foarte rar), este folosirea unui template engine.

Smarty este OK, dar webdesignerii am observat ca au ceva probleme in a lucra cu tagurile {}. De curand am descoperit phptal (php 5 only). Probabil sunt in jur de 70-80 de template-engineuri ptr. php.

Un DB Abstraction Layer nu iti va aduce un mare castig (de separarea conceptelor de prezentare/logica nici nu poate fi vorba). Iar portabilitatea este un mare vis, in realitate cred ca este practic imposibil sa scrii o aplicatie care sa mearga fara nici o interventie sau fara nici un rand de cod scris in plus pe doua servere SQL diferite.
Dupa parerea mea, singurul avantaj consta in faptul ca vei avea aceleasi nume pentru metodele apelate indifirent ca folosesti mysql sau pgsql.

Codul procedural nu iti aduce nici un castig de viteza, din contra, aplicatiile procedurale sunt mai lente. (HF)

Avatar utilizator
ExcalIbvr
Senior Member
Mesaje: 1105
Membru din: Dum Mai 02, 2004 10:56 pm
Localitate: Oradea
Contact:

Mesajde ExcalIbvr » Lun Mai 02, 2005 1:02 am

Ma gasesc scriind o gramada de cod Smarty in template-uri, o gramada de {if}uri si {section}uri. Practic, imi dau seama ca am un talmes-balmes de cod. Solutia ar fi, probabil, crearea unui template pentru fiecare comportament al unei pagini. Este, totusi, aceasta o solutie?





bld
Senior Member
Mesaje: 284
Membru din: Mie Sep 01, 2004 10:30 pm
Localitate: Alaska

Mesajde bld » Mie Mai 04, 2005 7:04 pm

smartey e bun...bine atunci...sunt dispus sa incerc...de unde incep? cu ce incep? la ce sa ma astept? :roll:

Avatar utilizator
hipnotic
PHPRomania Supporter
Mesaje: 24
Membru din: Vin Dec 05, 2003 5:05 pm
Localitate: Cluj

Mesajde hipnotic » Mie Mai 04, 2005 7:53 pm

Cu ce sa incepi? Incearca : http://smarty.php.net/manual/en/
Success is a real Satisfaction

aurelian
Senior Member
Mesaje: 833
Membru din: Dum Iun 01, 2003 7:54 pm
Localitate: Bucuresti
Contact:

Mesajde aurelian » Mie Mai 04, 2005 9:34 pm


mihnea sim
Average Member
Mesaje: 149
Membru din: Vin Aug 20, 2004 9:15 pm
Localitate: Alexandria
Contact:

Mesajde mihnea sim » Joi Mai 05, 2005 6:08 pm

Eu am lucrat de vreo 3 ori strict cu functii. De doua ori mi-a iesit o treaba buna. Este intr-adevar un pas in fata in domeniul programarii in php (e undeva la nivelul incepator -> medium), trebuie insa sa stapanesti bine cateva notiuni:
- transferul de parametrii (prin valoare, prin referinta, parametrii ce pot lipsi la apel)
- folosirea variabilelor (formale, globale) Atentie .. pt a folosi intr-o functie o variabila globala aceasta tb redeclarata cu global $var; in functie
- diferenta intre functiile care au return si cele gen proceduri.
- lucrul cu return .. care face (dupa mine) toata frumusetea acestui mod de programare

Pentru cei ce reusesc sa lucreze curat vor descoperi ca este o modalitate prin care se pot face lucruri mari prin efort mic. Prima oara mi-a iesit ceva ingrozitor .. vreo 20 de functii .. multe se repetau, multe nu erau folosite pe nicaieri .. iar fisierul ajunsese la 50 Kb
Inca un considerent: nu turnati toate functiile intr-un singur fisier. Tb sa evitati erorile de genul -- function already declared (sau ceva de genul). Si de asemenea .. ingreuneaza scriptul declararea a 20 de functii si utilizarea a numai 3. Incearca pe cat posibil sa declari functiile in locurile in care le folosesti, si doar pe cele "globale" intr-un fisier separat. Poti face ceva de genul: "math_f.php" "print_f.php", "filter_f.php" adika un fel de biblioteci de functii .. clasificate in functie de nivelul de utilizare al lor (aici depinde si de ce proiect vrei sa realizezi). Si nu in ultimul rand .. da nume sugestive functiilor, comenteaza tot ce e ambiguu si poti uita .. si mai ales ai mare grija cu return -ul. In el sta toata puterea. Succes!
"o istorie aberanta si injusta copleseste fiinta si o arunca afara din lumea ei"

Avatar utilizator
oriceon
PHPRomania Moderator
Mesaje: 480
Membru din: Vin Dec 24, 2004 3:48 pm
Localitate: Constanta
Contact:

Mesajde oriceon » Vin Mai 20, 2005 3:19 am

Daca vrea cineva sa invete, cautati-ma pe yahoo messenger pe id: oriceon ,
am tot vrut sa fac un tutorial dar nu am avut timp..

Este super simplu .. stiu ceva mai frumos decat smarty... mai usor si .. invatare in 10 minute.
.:: Develop and Fun in .Ro Style ::.
I love and i enjoy browsing web with

PinkMilk
Junior Member
Mesaje: 34
Membru din: Mar Apr 19, 2005 11:18 pm

Mesajde PinkMilk » Vin Mai 20, 2005 9:28 pm

... class ???

Nu stiu, dar mie smarty mi se pare destul de complicat.
Script kiddies are born every day... use Condomes!


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 29 vizitatori