codeigniter

De ce e CodeIgniter cel mai bun framework

De foarte multe ori am auzit vorbindu-se de PHP ca fiind cel mai bun framework si in fiecare discutie existau argumente pozitive si negative. Totusi nu se poate vorbi de un framework, sau de un limbaj de programare ca fiind cel mai bun. Acest lucru depinde de la programator, fiecare are un stil diferit de programare si prioritati diferite atunci cand vine vorba de utilizarea anumitor instrumente pentru construirea de aplicatii.

Personal, alegerea mea este CodeIgniter si o sa va spun si de ce.

Arhitectura MVC. Modelul, interfata si arhitectura nu sunt noi. Se pare ca toate frameworkurile astazi sunt de tipul MVC si daca nu sunt, acestea se pot configura cu usurinta. Am avut experienta in construirea de aplicatii mari in care, de fiecare data, rezulta un cod final imposibil de gestionat. Modelul MVC creaza un cod frumos separat si pastreaza lucrurile curate. Unele frameworuri te obliga sa faci lucrurila ca la carte, insa modelul MCV de la CodeIgniter isi ofera libertatea de programa si aranja liniile de cod asa cum doresti.

Putine cerinte server. Spre deosebire de frameworkurile PHP, CodeIgniter functioneaza atat cu PHP 4 cat si cu PHP 5. Acesta usureaza cu mult munca cuiva ca mine, care trebuie sa lucreze fara probleme cu cele doua medii foarte usor.

Usor de inteles si de extins. CodeIgniter este primul framework pe care l-am folosit si care are sens pentru mine. Am incercat Cake PHP, Symphony, Zend si multe alte frameworkuri, dar CodeIgniter este cel mai rapid si mai usor de inteles. Iti permite sa scrii noi biblioteci, sa modifici comportamentul celor existente si sa modifici intreg comportamentul frameworkului cu foarte putin efort.

Include sisteme de securitate. CodeIgniter iti permite sa adaugi oricat de multe sau de putine sisteme de securitate doresti pentru aplicatia ta. Face unele lucruri in mod automat ca dezactivarea variabilelor globale (register_globals) indiferent de directivele PHP sau oprirea directivelor magic_quotes_runtime in timpul initializarii sistemului astfel incat sa nu fiti nevoiti sa eliminati slash-uri atunci cand recuperati datele din baza de date. Alte functii ca cookie encryption sau interogari automate SQL pot fi activate.

Toate instrumentele de care ai nevoie sunt intr-un singur pachet. Calendar, email, compresie zip, validare, upload, unit testing, acestea sunt doar cateva dintre bibliotecile pe care CodeIgniter le contine. Include si o multime de alte functii ajutatoare precum formulare, file handling, tablouri (arrays), siruri de caractere (strings), cookies, directoare, si mult mai multe. In plus, daca acestea nu sunt suficiente, ai libertatea de a crea propriile functii si biblioteci ajutatoare sau sa folosesti direct codul creat si dezvoltat de membrii comunitatii CodeIgniter si postat oe wiki.

Nu necesita instalare. Incredibil sau nu, cele mai multe probleme le-am intampinat in momentul in care incercam sa instalez un nou framework. Nu sunt un fan al comenzilui UNIX, tocmai de accea am cautat mereu doar instrumente pe care le puteam instala si utiliza doar prin incarcarea fisierelor intr-un director. CodeIgniter se potriveste acestor cerinte. Nu necesita PEAR packages sau modificari de server pentru a functiona. Este suficient sa incarcati fisierele in server si va puteti apuca de lucru.

Documentarie excelenta.  De departe, cel mai mare avantaj al frameworkului CodeIgniter este documentatia. Recunosc ca am folosit alte frameworkuri cand erau inca in versiunea beta in curs de dezvoltare. Dar documentatia CI este de zece ori mai mare si mai cuprinzatoare decat la orice alt framework iar acest lucru este posibil si datorita faptului ca CodeIgniter este sustinit de catre o companie, nu doar de comunitatea de programatori. EllisLab, compania din spatele CI, are planuri de dezvoltare  a frameworkului, de aceea nu au o problema in a investi timp in construirea unei documentatii de calitate.

Database abstraction.  In ziua de astazi orice framework decent include module database abstraction iar CI nu face exceptie. Puteti sa creati, inserati, actualizati sau sa stergeri cu usurinta date din baza de date fara a fi nevoie sa  scrieti comenzi SQL brute. Puteti sa crea mai multe baze de date intr-o singura aplicatie si puteti face legaturi intre urmatoarele tipuri de baze de date: MySQL, MySQLi, MS SQL, Postgre Oracle, SQLite sau ODBC. CodeIgniter va permite de asemenea sa manipulati baza de date, sa adaugati, eliminati coloane din tabele, sa creati tabele noi sau sa le eliminati pe cele vechi, folosindu-va delibraria  new database forge.

Comunitate mare de utilizatori activi. Ultima data cand am verificat existau 58.000 de membrii inscrisi pe forumurile CodeIgniter. O comunitate mare cu care poti colabora, comunica si gasi solutii la orice problema sau rapunsuri la orice intrebare.

Va fi inclus in ExpressionEngine. Un alt motiv pentru care CodeIgniter este in topul preferintelor mele, este acela ca ExpressionEngine, sistemul de management EllisLab, este in prezent reconstruit pentru a utliza frameworkul CI. Acest lucru ineamna ca orice librarie, functie sau cod pe care il folositi in CI va putea fi folosit in viitor si cu EE si vice versa iar acestea vor crea usura si inbunatati experienta de programare.