Începând cu PHP 5, partea de limbaj care se ocupă de obiecte a fost rescrisă astfel încât PHP-ul să ofere, în prezent, un model orientat obiect cu performanțe ridicate, funcționalități noi și care să facă din PHP un limbaj orientat obiect deplin. În continuare, PHP-ul permite atât programarea procedurală (Procedural Programming), cât și orientată obiect (Object Oriented Programming), dar și un mixt între ele.
Multe platforme dezvoltate cu PHP 4, dar care sunt încă de actualitate – WordPress, Drupal, combină cu succes programarea procedură cu cea pe obiecte, dar platformele și framework-urile noi sunt dezvoltate exclusiv cu obiecte. Programarea orientată obiect este o tehnică, o modalitate de programare prin care datele și funcțiile sunt încapsulate în entități separate numite obiecte. Tot ceea ce se poate programa procedural se poate programa și orientat obiect și vice-versa.
În acest caz, care sunt diferențele dintre ele și avantajele programării orientate obiect?
Diferența dintre programarea procedură și cea orientată obiect.
Atât programarea procedurală, cât și OOP-ul presupun organizarea unei probleme complexe în mici module funcționale. Procedural facem asta în funcții, iar în OOP în obiecte. Cu cât complexitatea codului și dimensiunea acestuia crește, cu atât mai greu este de programat procedural (cu funcții) și mai ineficient – timp mai mult pentru dezvoltare, mai expus bug-urilor și mai mult timp pentru debugging.
Programarea procedurală Este ‘stilul’ de programare care se folosește de funcții (proceduri) pentru a împărții codul în module mai mici și mai usor de gestionat. Acest mod de programare împarte codul pe sarcini (task-uri) de îndeplinit, de exemplu validarea datelor de input, efectuarea anumitor calcule, afișarea rezultatelor etc.