Cytat(in5ane @ 10.12.2014, 18:15:44 )

Chodzi o to, że programowanie obiektowe jest bardziej rozszerzalne. Łatwo też zrozumieć kod osobie, która go nie pisała - łatwiej będzie jej coś dopisać. Siadając do obcego kodu strukturalnego naprawdę ciężko czasem się połapać. Nie mówie, że w OOP jest banalnie, bo to też zależy, jak programista napisał klasę czy metody.
Najważniejsze jest również to, co jest rzadko poruszane/omawiane. W programowaniu obiektowym tworzymy klasy, w niej metody i następnie tworzy się obiekty wykorzystujące dane klasy. I to jest ważne, co to jest obiekt? Obiekt jest to swego rodzaju typ danych. Tak jak masz string, integer, array, to tak samo masz obiekt.
Jak będziesz chciał zrobić np. zbiór danych o samochodach. Czyli masz markę, marka ma kilka modeli, każdy model ma kilka podmodeli (inne silniki itp.) to musiałbyś stworzyć olbrzymią tablicą array w programowaniu strukturalnym. Zarządzanie taką tablicą na pewno do łatwych zadań nie będzie należało.
Ciężko to trochę wytłumaczyć - nie jestem dobrym nauczycielem. Na podstawie swojego doświadczenia, co mógłbym Ci doradzić. Ja nauczyłem się OOP dopiero, gdy wziąłem pod jakąś aplikację framework do jej budowy. Wiedziałem, że jest on napisany obiektowo. Wiedziałem również, że nic nie wiem na ten temat (gdyż, tak jak Ty, gdy próbowałem się uczyć OOP z kursów/poradników/tutoriali to to olewałem i się zastanawiałem po co to). Pisząc aplikację we framework'u opierasz się o dokumentację lub gotowe rozwiązania lub ewentualnie jakieś tutoriale. I pisz sobie tą aplikację, będziesz poznawał cały czas coś nowego. I w między czasie w końcu zaczniesz komuś na co to komu te klasy, metody i obiekty. Ja zacząłem od frameworka CodeIgniter (który jest kiczem!), ale na początek był to świetny wybór. Szybko to ogarnąłem. Później nauczyłem się frameworka Kohana, w którym piszę do dziś w sumie. W międzyczasie liznąłem Laravel, Symfony 2. I dziś? Nie wyobrażam sobie, aby miało nie być programowania obiektowego. Czasem gdy mam coś do napisania, jakiś skrypt coś wykonujący. To od razu zaczynam pisać do tego klasę. Mając taką klasę, możemy ją wydzielić do osobnego pliku i tylko includować i tworzyć na niej obiekty. Wniosek? Łatwo przenosić kawałki kodów. Np. tworzysz klasę do generowania formularzy. Jeśli całą logikę zawrzesz w klasie, to możesz ją swobodnie przenosić pomiędzy aplikacjami. Ba, możesz udostępniać te klasę innym użytkownikom, którzy widząc ja pierwszy raz na oczy i mając mini dokumentację, czyli jakie należy wywołać metody będą mogli jej używać w ogóle nie zwracając uwagi na to, jaki jest w środku kod.
Reasumując. Jak najbardziej zaleca się pisania swoich aplikacji obiektowo. Gdybyś liznął inne języki programowania, to od razu byś to wiedział. Bo nie oszukujmy się, PHP jest dość ubogi w stosunku do np. Javy czy C#. Ostatnio piszę również większą aplikację w Go. Tam programowanie obiektowe wygląda troszkę inaczej, ale również tego się używa.
Większość rozumiem i spodobało mi się to "Łatwo też zrozumieć kod osobie, która go nie pisała - łatwiej będzie jej coś dopisać" więc raczej zacznę się go uczyć.
Jednak w kwestii "zbiór danych o samochodach" się nie zgadzam, ponieważ chyba nikt teraz nie robi list w PHP a pobiera je z bazy danych (tzn. w wielu przypadkach się to robi, ale na pewno nie w takim przykładzie jak podałeś) za pomocą np. mysql_fetch_array albo assoc.
I nie zrozumiałem do końca "Mając taką klasę, możemy ją wydzielić do osobnego pliku i tylko includować i tworzyć na niej obiekty" czy chodziło Ci o używanie klasy w wielu plikach (bo do tego wystarczy zwykłe function) czy o to, że klasy można tak jakby edytować/dodawać do nich pewne rzeczy w różnych miejscach.
Tak czy siak, dzięki za dobrą odpowiedź - naprawdę mi się przydała.
Pozdrawiam.