Proiectul Symfony

mai 8, 2008

   Symfony este un framework web pentru PHP . Adică ? Ce este un framework web ? Practic este o aplicaţie care suportă creerea de site-uri dinamic . Acesta încearcă să preia din monotonia scriptingului făcând treburile “murdare” pentru noi . Oferă librării de conectare la baza de date , templating şi management de sesiuni . Mai pe româneşte , nu trebuie să ne mai batem capul cu tot felul de chestii , căci se ocupă Symfony . Într-un fel frameworkul structurează modul în care lucrează progrmatorul ducând teoretic la terminarea mai rapidă a site-ului şi un debugging mai uşor .

   Symfony asta face . Ne ajută să creem şi să menţinem site-urile mai uşor . Poate la prima vedere pare complicat dar după aceea lucrurile se schimbă radical . Întodeauna am fost adeptul diversităţii şi cunoaşterii , dar cu toţii ştim , că deşi există multe librării şi alte chestii tot trebuie să repetăm codul .. şi tot să-l repetăm . Cu acest framework treaba începe să sune mai “dulceag” .

   La site-urile mici mai te descurci să scrii codul şi să-şi organizezi aplicaţia cu tot felul de chestii . Dar deja la site-urile mari , greul începe să se arate . Cred că Symfony este o soluţie optimă şi nu regret că-l folosesc . Şi este open-source .

   Symfony este scris în totalitate în PHP5 . Symfony e uşor de instalat şi configurat şi funcţioneză pe majoritatea platformelor . O chestie interesantă este implementarea de templateuri . Practic , împărţim aplicaţia în două părţi ( practic , lăsând la o parte modulele de configurare şi alte cele ) . O parte de cod ( acţiune ) care preia datele ( posibil din baza de date ) şi efectuează acţiunea , încarcă variablele , etc . O altă parte de template ( ce se afişează ) care foloseste datele din acţiune şi afisează . Şi Smarty mai foloseşte ceva de genu , dar acolo sunt mai multe chestii .. O să discutăm altă dată . De câte ori aţi lucrat cu formuri HTML şi v-aţi chinuit să le validaţi ? Symfony vine cu o chestie drăguţă pentru validarea şi repopularea formularului ( în cazul în care aţi făcut submit dar nu a fost validat ) cât şi afişarea automată de erori . Foloseşte un fişier YAML . Validează toate câmpurile odată şi afişează la sfârşit toate erorile ( specificate de noi în fisierul YAML ) . Are suport pentru routare şi URL-uri deştepte care vă vor face viaţa mai uşoara .

   Când a fost lansat Symfony ? Prima versiune a fost lansată în octombrie 2005 . Are deasemenea şi o documentaţie interesantă numai bună pentru începători . Fie că eşti începător în ale PHP-ului , fie că eşti expert , poţi folosi Symfony . Conceptele pe care se bazează Symfony sunt :

  •   OOP : n-am să analizez ce înseamnă OOP , cât la ce ne ajută în dezvoltarea aplicaţiilor web . Practic site-ului poate fi privit ca o casă cu încăperi . Fiecare încăpere este o clasă şi de câte ori ne referim la ea ( când o vizităm , amintim ) o înstanţiem , creem un obiect . Folosirea obiectelor în dezvoltarea de site-uri web ( dar nu numai , cât şi în multe aplicaţii ) este benefică deoarece permite structurarea , stilizarea şi mai buna întelegere proiectului ( debugging , update , mai uşoare ) .
  • PEAR : este un framework . Ne ajută să downloadăm , instalăm , upgradăm şi să dezinstalăm scripturi PHP . Symfony îl foloseşte pentru încărcarea şi descărcarea de pluginuri ( scripturi care ne ajută să facem diverse chestii fără să mai recreem roata ) .
  • YAML : deja discutasem mai sus că putem face validări de formuri HTML prin intermediul fişierelor YAML . Practic , m-am exprimt greşit . Mai corect ar fi fişiere care conţin date organizate după standardele limbajului YAML . YAML este o structură , un mod de a organiza datele . Ceva asemănător face şi XML-ul , HTML-ul . Doar că modul în care se scrie în YAML este mai uşor decât XML-ul . Formatul a apărut cam din 2001 şi este disponibil pentru o varietate de limbaje . Drăguţ este că numele lui înseamnă chiar că el nu este un limbaj . “Nu” este un limbaj căci n-are taguri sau alte chestii .
  • ORM : interfaţa care leagă codul de bazele de date . Practic sunt nişte clase prin care putem prelua sau prelucra date din bazale de date . Şi ? Ne ajută când folosim diverse baze de date . Să presupunem că iniţial am construit site-ul cu o bază de date oarecare ( şi codul aferent desigur cu interogarea specifică ei ) apoi schimbăm site-ul pe altă bază de date . Prin intermediul conceptului ORM şi Symfony , pentru noi e necesar să scriem doar codul , restul este generat de framework .

   La prima vedere aplicaţia Symfony poate fi ciudată . Conţine multe directoare şi îmbină multe clase PHP , HTML . Symfony se bazează pe arhitectura MVC . MVC-ul este un mod de a organiza lucrurile pentru a nu rămâne complicate sau mai bine zis , pentru a nu le complica . Se împarte în trei părţi . O parte model prin care facem abstractizarea bazei de date ( ORM-ul despre care discutam mai devreme , nu contează la ce tip de bază de date ne conectăm cât folosim obiectele “bune”) cât şi accesul la date . O a doua parte de arătare ( templateul , layout-ul ) , ceea ce vede utilizatorul . Şi ultima şi a treia parte de control , acţiunea . Multe şi mărunte .

   N-are rost să scriu prea mult , pentru început . Doar cât să mestecaţi şi voi într-o seară .