Laravel je svojom pojavom uskomešao stvari u svetu PHP framework-a i mislim da je trenutno hit medju developer-ima. On podseća na CI možda samo zbog toga što je to jedan od onih quick start framework-ova, dosta lako se započinje rad s njim, lak je za shvatanje, itd., ali se tu svaka sličnost završava, jer je po mom mišljenju Laravel dosta uređeniji i konzistentiji framework od CI-a.
Zend Framework spada u kategoriju "ozbiljnijih" radnih okvira i on je u odnosu na Laravel teška artiljerija, što zbog samog broja komponenti, što zbog mogućnosti istih tih komponenti, u poređenju sa Laravel-ovim komponentama istog tipa. To pogotovo važi za verziju 2 Zend Framework-a, koja je potpuno drugačija od prethodne verzije, u smislu koncepcije, kompleksnosti, a i svega ostalog. Dvojka po mom mišljenju najbolje od svih framework-ova promoviše te
SOLID principe, ima veoma moćnu
implementaciju Service locator pattern-a, koja praktično nosi ceo framework. Još jedan koncept koji je veoma zastupljen i koji dominira framework-om jeste ta event-driven arhitektura. Veze i komunikacija između komponenti se odvija upravo zahvaljući toj
EventManager komponenti.
Ono što je po mom mišljenju jedna od najboljih karaketristika ovog novog Zend Framework izdanja jeste njegov
sistem modula. Taj novi pristup je tako jednostavan, a moćan, jer modul kao celina, može sadržati sve od PHP fajlova, do JS i CSS asset-a, što za rezultat ima modularnost u pravom smislu te reči. Upravo iz tog novog načina razmišljanja se izrodio i sajt
ZF2 Modules - repository custom ZF2 modula, što ranije recimo nije bilo moguće. Tako da, pre nego što se upustiš u samostalno rešavanje nekog problema, najpre potraži modul te neke namene na ovom sajtu, sigurno ćeš pronaći nešto kvalitetno, tako je barem bilo u mom slučaju u par navrata.
Sve te stvari koje sam naveo čine Zend Framework neverovatno moćnim i fleksibilnim, mogućnosti za rad su neograničene. Mislim da u pogledu ovih osobina, jedino Symfony može da parira Zend Framework-u 2. Pored tih nekih, da ih tako nazovem core koncepata, tu su opet i one pomoćne komponente koje su krasile i ZF 1, kao što su Zend Db, Zend Cache, Zend Form, validatori, filteri, I18n komponenta, servisi, itd. Kompletan listing je dostupan ovde:
https://packages.zendframework.com/. I naravno, kao što je to slučaj sa svim kvalitetnijim framework-ovima, sve te komponente su praktično u potpunosti nezavisne jedna od drugih, te je moguće cherry pick-ovati samo one koje su developer-u zaista i neophodne.
E sad, nije tajna da framework-ove tipa ZF, Symfony i slične, karakterišu
lošije performanse od ostalih, što je i normalno, jer nažalost cena takvih nekih koncepata i dobrih praksi jesu upravo slabije performanse.
Što se nekih mojih preferencija tiče, ja ću uvek birati radne okvire kakav je ZF, jer ta cena itekako može da se nadomesti pametnom ogranizacijom, korišćenjem samo onih komponenti koje su potrebne, a kada se u igru uključi i neko višeslojno keširanje, tu onda više i nema govora o pitanjima performantnosti.