Object Oriented Programming

Në PHP mund të programojmë në dy mënyra:

  • Programim procedural
  • Programim i bazuar në objekte

Shembujt që janë dhënë në libër, të gjitha kanë qenë të bazuara në programim procedural.

Çka nënkuptohet me “programim procedural”?

Ta marrim si shembull një faqe për paraqitjen e produkteve. Për ta shfaqur atë faqe duhen të kryhen disa veprime:

  • Konektimi me MySQL server
  • Dërgimi i SQL kërkesës
  • Ekzekutimi i SQL kërkesës
  • Pranimi i rezultateve
  • Analiza nëse ka apo s’ka rezultate
  • Nëse ka - formohet cikli i cili i lexon një nga një rreshtat me të dhëna të pranuara nga SQL tabela
  • Kryhen llogaritjet e nevojshme
  • Shfaqen rezultatet në shfletues
  • Mbyllet koneksioni me server

Këtu shohim se rreshtat programorë ekzekutohen njëri pas tjetrit në mënyrë sekuencionale, me një renditje të paracaktuar se çka vjen para e çka pas.

Një program i tillë mund të degëzohet dhe mund të ketë iteracione (përsëritje, cikle) të blloqeve të rreshtave programorë (programim procedural i strukturuar_. Sido që të jetë strukturuar kodi, ai gjithmonë e ndjek një sekuencë të paradefinuar të ekzekutimit të rreshtave programorë.

Mund të themi se janë tri konstrukte kryesore të programimit procedural:

  • Sekuenca. Ekzekutimi i urdhërave njëri pas tjetrit.
  • Degëzimi. Ndarja e rrjedhës së ekzekutimit në degë.
  • Iteracioni. Përsëritja e një blloku të rreshtave programorë.

E tërë logjika e programit bazohet në struktura të tilla dhe çfarëdo “shkëputja” nga një strukturë e tillë monolitike diku në ndonjë rresht, si pasojë do të sjellë “rrënimin” e programit - situata kur programi ekzekutohet ndryshe nga ajo që është planifikuar. Në situata të tilla programi ose ndalet sepse ka hasur në gabim, ose bën veprime të gabuara që rezultojnë në rezultate të gabuara në fund.

Gjatë ekzekutimit të një programi të tillë, gjithmonë është i qartë dallimi ndërmjet kodit dhe variablave. Variablat ruajnë vlera, kodi kryen një veprim.

Një stil i këtillë i programimit është i përshtatshëm atëherë kur kemi të bëjmë me ndonjë aplikacion të thjeshtë. Me rritjen e kompleksitetit të aplikacionit, programuesi do ta ketë gjithnjë e më vështirë ta mirëmbajë kodin, për arsye të ndryshme:

  • Shumë kod i pasistemuar në një vend,
  • Përdorimi i numri të madh të variablave, ku shumë prej tyre mund të kenë emra të njëjtë dhe me këtë, në mënyrë të pahetueshme - e ndryshojnë vlerën gjatë ekzekutimit të programit, gjë që e bën shumë të vështirë gjetjen e gabimeve,
  • Përsëritje e blloqeve të njëjta të kodit nëpër skripta të ndryshme
  • Përfshirja e një numri të madh të funksioneve, ku një pjesë e tyre as që përdoren brenda aplikacionit
  • Është vështirë të shtohen gjëra të reja në kod e të mos ndikohet pjesa tjetër e programit. Pra, çdo shtojcë e re mund të sjellë probleme të reja.
  • Është i vështirë ristrukturimi i kodit sepse nxjerrja e një blloku të kodit nga një vend dhe vendosja e tij në një vend tjetër, mund të sjellë probleme me rrjedhën e ekzekutimit të programit.
  • E bën një ndryshim qoftë edhe të vogël diku dhe pasojat mund të shkojnë në formë të efektit të ortekut teposhtë. Si shembull: një ndryshim i emrit apo vlerës së variablit, mund shkaktojë pasoja në rreshtat vijues, sepse i gjithë kodi vepron si një tërësi kompakte.

OOP është një metodologji që mbështetet në marrëdhëniet ndërmjet “objekteve”, duke mundësuar një nivel të abstraksionit gjatë përpilimit të programit. Nëse për shembull, aplikacioni ynë është një e-commerce site, me OOP do të izolohen në tërësi të veçanta objekti i blerësit, objekti i produktit, objekti i shportës, etj.

Brenda objektit të shportës do të ketë: - Veti (properties), dhe - Metoda

Vetia është një emërtim tjetër për variablat siç i kemi mësuar deri tash, ndërsa metoda është një emërtim tjetër për funksion. Të dy këto shprehje përdoren në kontekst të OOP.

Vetitë dhe metodat “koekzistojnë” brenda objektit të njëjtë, për dallim nga programimi procedural, ku variablat dhe funksionet ishin qartësisht të ndara. Në OOP, vlerat e variablave dhe funksionet përkatëse i shohim si një objekt të vetëm.

Objekti i shportës që u morr si shembull, mund të ketë këto veti (properties):

  • ID-në e produktit,
  • Çmimin e produktit,
  • Sasinë e produktit, etj.

Poashtu mund të ketë metoda:

  • Për llogaritjen e vlerës së produktit (sasia x çmimi),
  • Për llogaritjen e TVSH-së,
  • Për llogaritjen e uljes së çmimit për konsumatorë të caktuar, etj.