Procedural vs OOP in php

php

(Niculae Bucur Ion) #1

In acest moment am bazele de cunostere in php procedural stiu sa fac un site in procedural. Sunt in curs de invatare OOP in php.
Am urmarit destule videoclipuri pe youtube pro si contra OOP in php.
Stau si ma intreb daca este bine sa continui sa invat OOP, daca ar fi dupa mine asa face site-urile numai in procedural.
Astep sfaturi de la cei cu experienta si un raspuns la intrebarea: este bine sa fac site-urile in php procedural sau in OOP?
Daca le fac doar procedural este ok?


(Eugen) #2

OOP vs functional (procedural-ish) e o dezbatere religioasa. Daca o sa fi nevoit sa folosesti vreun framework gen Laravel, o sa ai nevoie de concepte OOP.

Mi-a placut mult prezentarea Simple made easy, destul de relevanta in context.


(István F.) #3

Nu stiu ce vrei sa faci cu php si sa nu necesite obiecte ca sa nu innebunesti. Sunt mult prea utile obiectele in php, nu doar ele ci intreg sistemul de clase si organizare.

In majoritatea cazurilor API-urile sunt obiecte, JSON-ul inseamna obiecte, mysql cu pdo înseamnă obiecte, Symfony/Laravel abuzeaza de obiecte.

Faci un constructor si dupa il folosesti in 50 de locuri.
Te va incurca putin $this peste tot dar eu zic ca merita.

Asta iti explica tot ce iti trebuie :

Dupa fa ceva frumos cu pdo sau json.


(Florin Frătică) #4

În programarea procedurală ai funcții care fac o acțiune. În OOP codul este organizat astfel încât să poată fi refolosit în mai multe secțiuni din aplicație.

Sunt de părere că este bine să înveți întâi PHP procedural, însă după ce te familiarizezi cu limbajul poți să începi să îți organizezi codul (OOP) pentru că în momentul în care vei avea proiecte ample va deveni din ce în ce mai greu să lucrezi procedural.


(Horia Coman) #5

Nu cred ca ai o optiune ca programator sa nu inveti OOP. Sunt “table stakes”. Chiar daca planuiesti sa activezi doar in PHP. Toate celelalte limbaje mari de programare sunt OOP-first intr-o forma sau alta, exceptand C. La PHP, ecosistemul de framework-uri si librarii din jur este impartit inca, asa ca mai ai optiunea pentru o perioada sa poti sa faci ceva profesionist, si sa nu fie OOP. Nu e o cale de luat.


(Ex. Dakull) #6

no. there’s no “vs” i.e. both are excellent in a suitable context.


(Ionuț Staicu) #7

Cred că dezbaterea se referă mai mult la cei care sunt chitiți pe un anumit mod de programare și fac totul în acel fel și sunt destul de determinați să poarte războaie (online) cu cei ce nu sunt de acord. Un fel de OOP Fanboys, dacă vrei :slight_smile:


Cu mențiunea că a folosi aceste API-uri nu înseamnă neapărat că scrii OOP.


Referitor la întrebarea inițială: dacă faci site-uri simple, cel mai probabil vei fi în regulă cu php procedural. Dacă îți place să citești/experimentezi, cel mai probabil vei ajunge singur la concluzia că ai nevoie de OOP.


(Ex. Dakull) #8

Those are not worthy of the programmer moniker.

(happy holidays btw. :christmas_tree:)