Mergând pe principiul KISS (Keep It Simple Stupid), când avem nevoie de un start rapid pentru un proiect suntem nevoiți să căutăm de fiecare dată varianta cea mai simplă de implementat. La momentul actual, framework-urile principale sunt Symfony și Laravel. Ambele sunt dezvoltate pe cele mai recente concepte PHP și programarea pe obiecte (OOP). Totuși, cerințele de sistem și software, instalarea un pic mai complexă, codul necesar doar să afișezi o pagină cu "În construcție", ar putea descuraja un eventual startup, un proiect de testare sau chiar site-uri de dimensiuni mici și medii.
CodeIgniter, pe de altă parte, se axează pe simplitate, atât în instalare cât și în dezvoltare și mentenanță. Dezvoltat deja de 10 ani, ajuns la versiunea 3.0.6, CodeIgniter poate fi folosit pentru orice tip de proiect, de la blog sau site de prezentare la portal, REST Server sau magazin e-commerce.
Comparativ cu celelalte framework-uri folosite la ora actuală, CodeIgniter stă extraordinar de bine raportat la ușurința de utilizare. Astfel, este în top 5, atât la popularitate cât și la memorie consumată sau viteză.
http://www.sitepoint.com/best-php-framework-2015-sitepoint-survey-results/
Benchmark (http://blog.a-way-out.net/blog/2015/03/27/php-framework-benchmark/)
Vă enumerăm mai jos câteva dintre motivele pentru care merită să încercați CodeIgniter:
Este gratuit.
Ușurință în instalare (rulează pe orice tip de hosting).
Versiune PHP minimă PHP 5.4.
Memorie consumată foarte puțină.
Foarte rapid.
Structură Model-View-Controller.
Documentație complete.
Flow-ul aplicației este foarte clar/simplu. (https://codeigniter.com/user\_guide/overview/appflow.html):
Routing - Configurarea routing-ului, foarte simplă, din application/config/routing.php
. Este permisă scrierea întregului URL sau se pot folosi expresii RegExp.
Metoda de lucru este clasică, /controller/method/
. Primul segment din URL este controller-ul ce va fi apelat, al doilea segment, metoda apelată. Bineînțeles că se poate folosi orice altă variantă.
Security - CodeIgniter are incluse default caracteristici clasice de securitate: securizarea adresei url (URI), securizarea register_globals ($_GET
, $_POST
, $_REQUEST
, $_COOKIES
), XSS filtering, CSRF protection, Form Validation.
Application Controller - Controler-ul se extinde prin CI_Controller
. (locație: application/controllers/
)
Views- View-ul este o pagină sau un fragment html (exemplu: header, footer). View-ul nu este apelat direct de URI, ci prin intermediul controller-ului, cu sintaxa: $this->load->view('name');
Locație: application/views
. Nu este necesar să fie folosit vreun "Template Engine", care ar îngreuna atât programarea cât și mentenanța. Codul PHP standard este suficient.
Caching - Un element important în dezvoltarea de proiecte este și sistemul de caching. CodeIgniter permite caching atât pe pagini (view) cât și pe rezultate din baze de date.
Models - Modelele sunt clase folosite pentru manipularea datelor (și a bazelor de date). Locație: application/models (bineînțeles). Modelul extinde un model de bază (CI_Model
) și poate fi apelat din Controller după ce este inițializat, fie din fișierul de configurare config/autoload.php, fie cu sintaxa: $this->load->model('model_name');
Baze de date - CodeIgniter suportă cele mai folosite baze de date: cubrid, ibase, mssql, mysql (mysqli), oci8, odbc, pdo, postrgre, sqlite, sqlite3. Configurarea este foarte simplă în application/config/database.php . Se pot folosi mai multe baze de date simultan.
Libraries - Pentru orice proiect avem nevoie și de cod propriu. Application/libraries este locul librăriilor proprii. Aceste sunt clase încărcate în Controller cu sintaxa: $this->load->library('someclass')
.
Languages - Traducerea conținutului este un alt aspect important al oricărui proiect. Încărcarea fișierelor de traducere: $this->lang->load('filename', 'language')
, afișarea unei linii de traduceri: $this->lang->line('language_key')
.
Helpers - Pentru funcții proprii, se pot folosi fișierele "helper", unde se pot declara toate funcțiile necesare.
CodeIgniter vine la pachet cu librării proprii necesare în aproape orice proiect, în număr de 30. Printre ele: Benchmark, Email, Caching, Encrypt, File Upload, Form Validation, Image Manipulation, etc.
Așa cum se vede, este posibil să încărcăm strict ce avem nevoie pentru un anumit Route, fără clase și obiecte suplimentare. Acesta este motivul pentru care CodeIgniter are un consum de memorie foarte mic și este foarte rapid.
Se poate folosi inclusiv Composer împreună cu orice librărie, dacă se dorește o dezvoltare și mai rapidă a proiectului.
Așa cum am specificat mai sus, unul dintre punctele forte ale framework-ului este documentația. Aici se găsesc toate informațiile necesare pentru dezvoltarea proiectului, de la A la Z: https://codeigniter.com/user_guide/index.html
de Ovidiu Mățan
de Vlad But
de Maria Revnic
de Delia Mircea