OOP (PHP) co to jest?


(Wirrus) #1

Witam!

 

 

Czytam czasem oferty pracy z programowania stron internetowych w różnych językach. I tam pisze programowanie obiektowe OOP w PHP. Co to jest właściwe? do czego takie programowanie jest potrzebne? Ja znam akurat podstawy PHP i MySql ale nie rozumiem po co i do czego jest OOP? Może ktoś mi wytłumaczyć? Czy sklep internetowy, przelewy, blogi, poczta, forum... to jest to "OOP" ?? A może te ekrany logowania itd?Proszę nie podawać kodu,bo i tak niewiele z tego zrozumiem lecz jasno wytłumaczyć co to jest i do czego to służy. Z góry dzięki.


(Airborn) #2

OOP to paradygmat programowania (podobnie jak m.in. programowanie funkcyjne czy programowanie strukturalne). W zależności od paradygmatu struktura programu wykonującego takie same zadanie będzie wyglądała zupełnie różnie. OOP kładzie nacisk na odwzorowanie zachowania programu w postaci obiektów. Obiekt to taki byt który posiada pola (stan) i metody (zachowania) i komunikuje się z innymi obiektami.

 

Niestety PHP trochę utrudnia zrozumienie OOP, gdyż sam język początkowo powstawał jako strukturalny, a następnie ewoluował w kierunku obiektowości. Z tego powodu znajdziesz tam mieszankę jednego i drugiego co może powodować trochę problemów.


(system) #3

OOP to jest własnie programowanie obiektowe.


(Wirrus) #4

Ja rozumiem,że to jest programowanie obiektowe ale pytam do czego ono służy? bym prosił o przykład jakiegoś obiektu itd. Obiekt to inaczej sklep internetowy?? co to jest w ogóle obiekt i te całe “OOP”. Do czego to może służyć??


(Airborn) #5

OOP służy do pewnego usystematyzowania przygotowywanego projektu. OOP definiuje pewien proces odzwierciedlenia świata rzeczywistego w kodzie programu. Sklep internetowy prawdopodobnie będzie składał się z kilkuset obiektów różnych klas. Z obiektami związanych jest wiele innych pojęć takich jak dziedziczenie, kompozycja, abstrakcja czy polimorfizm i w zasadzie każdy z nich jest zbyt duży bo dokładnie i jasno opisać go w poście na forum.

 

Przykładem obiektu może być np. samochód. Taki obiekt składa się z innych obiektów, np. silnika, kół.Takie obiekty mogą np. trzymać stan i funkcjonalność (np. koło może mieć stan w postaci grubości bieżnika i współczynnika tarcia, samochód metodę obliczającą zużycie paliwa w zależności od obrotów silnika i współczynnika tarcia kół). Jak bardzo szczegółowo będziesz to opisywać zależy od tego jak bardzo szczegółowo trzeba zamodelować dany system na potrzeby tego konkretnego rozwiązania, które ma realizować Twój problem.


(Wirrus) #6

dziękuję :slight_smile:


(pain3hp) #7

To wszystko możesz napisać bez OOP, ale programując obiektowo uzyskujesz wiekszą kontrolę, przejrzystość i jakość, choć to subiektywna opinia.


(somekind) #8

 

Obiekty to elementy, z których składa się program. Program, to inaczej grupa współpracujących ze sobą obiektów.

W przypadku sklepu internetowego, obiektami mogą być: Produkty, Magazyn, Koszyk, Faktura, Klient. Koszyk pozwala na dodanie do siebie Produktu, pod warunkiem, że Magazyn stwierdzi, że są jeszcze dostępne egzamplarze. Koszyk po zatwierdzeniu przez klienta tworzy też obiekt Faktury.

 

Oczywiście, dałoby się to zrobić bez OOP, tworząc zestaw globalnych tablic, zmiennych i funkcji, ale przy takim podejściu trudniej pracować. Chociażby dlatego, że gdy wszystko jest globalne, to dużo łatwiej popełnić błąd.

 

Pod warunkiem, że umiesz prawidłowo ten paradygmat stosować. :slight_smile: