Ce este un framework ?
In esenta, este un set de clase PHP si functii la care dezvoltatorii adera atunci cand creeaza un site. Paradigma MVC poate fi vazuta ca o extensie la motoarele de sablonare (templating engines). Mai jos avem o scurta explicatie:
- Model (model): Modelul contine codul logic (business logic code) pentru server. Asta implica de obicei citirea si scrierea catre o baza de date in aditie cu niste pre- sau post-procesari.
- Vedere (view): Aici continutul este afisat utilizatorului intr-un mod particular, in general marcaje HTML, desi pote fi si intr-un format JSON sau XML.
- Controlor (controller): Un controlor este in esenta manager-ul. Prima data intercepteaza URL-ul, pe urma apeleaza modelul si vederea corecta inainte de a afisa continutul unui browser sau unui dispozitiv mobil.
Cum ne poate ajuta ?
Folosirea unui framework ar putea sa nu fie raspunsul la fiecare proiect. Mai jos avem cateva argumente pro si contra in folosirea acestora:
Pro
- pot fi folosite pentru dezvoltarea rapida de aplicatii
- cum fiecare proiect este bazat pe o structura similara, permite un ciclu mai rapid de dezvoltare
- dezvoltatorii pot trece de la un proiect la altul fara a se ingrijora prea mult de structura codului
- codul de baza se va schimba mai rar, rezultand intr-un site mai stabil
Contra
- unele framework-uri au o curba de invatare mai abrupta
- poate fi dificila gasirea unui dezvoltator cu experienta intr-un anumit framework
- nu toate framework-urile sunt lipsite de probleme (bug free)
- hacker-ii pot exploata vulnerabilitatile din framework-uri
Caracteristici suplimentare ale framework-urilor
- Functii ajutatoare (helper functions)
- Caching
- Unitate de testare (unit testing)
- Generare de forma (form generation)
- Sesiune (session)
- Sablonare (templating)
- Extindere / module provenite de la terte parti
- ACL (management de control al accesului si al autentificarii)
Cele mai bune framework-uri PHP pentru dezvoltatori
- Yii – Framework rapid, sigur si profesionist – http://www.yiiframework.com/
- Cake PHP – http://cakephp.org/
- Zend Framework – http://framework.zend.com/
- Symphony – Framework PHP cu performanta inalta – http://www.getsymphony.com/
- Laravel – Un framework pentru artizani – http://laravel.com/
Concluzii
In majoritatea cazurilor, framework-urile aduc o mana ajutatoare oricarui proiect. Dar ca orice instrument, cat de mult pot ajuta variaza in functie de circumstante.
Daca site-ul dumneavoastra implica mai mult continut, Drupal sau WordPress ar putea fi o alegere mai buna. Daca construiti urmatorul Twitter pentru a fi lansat imediat, Yii sau CakePHP ar fi variante foare bune. Daca mediul de lucru este corporativ, atunci Zend sau Symphony s-ar potrivi foarte bine.