Nie myl OO Javy z PHP. Java jest jednym językiem paradygmatu, co oznacza, że obsługuje tylko OO. Z drugiej strony PHP jest językiem o wielu paradygmatach, możesz albo programować funkcjonalnie, albo OO, albo jedno i drugie.
Teraz nie ma czegoś takiego jak „zła” implementacja OO. OO Javy nie jest ostateczną implementacją, której powinien przestrzegać każdy inny język. Istnieją pewne definitywne koncepcje, a oba języki w pełni implementują je na swój sposób (Java od samego początku, PHP od wersji 5).
Tak więc, aby odpowiedzieć na twoje pytanie: co robi CI i co z tym robisz, jest właściwe w świecie PHP. Macierze PHP są jedną z najbardziej elastycznych i użytecznych struktur i właściwie dobrze jest używać tablic nad obiektami, gdy dane są tylko informacją (nie loguj się nimi). W pełni kod OO to nie to samo, co „tylko kod OO”.
Jeśli zaczynasz od PHP, używaj Javy jako odniesienia do dobrych praktyk OO, ale nie ograniczaj swojego rozumienia PHP z powodu „Java robi to inaczej”. Możesz naprawdę zepsuć oba, paradygmat cię nie uratuje, jeśli nie zrozumiesz pojęć.
Jeśli w każdym razie uważasz, że Java bardziej Ci się podoba (jako osobistą preferencję), sprawdź Ruby w celu tworzenia stron internetowych, są one nieco bliżej powiązane.
Wykorzystuje obiekty zamiast tablic tylko dlatego, że obiekty nie są paradygmatem OO, to tylko osobiste preferencje :)
Obiekty umożliwiają wygodne uzupełnianie kodu w IDE, można używać interfejsów (podpowiedzi typu) i dziedziczenia.
Jeśli chcesz używać obiektów zamiast tablicy, ponieważ widzisz jakieś korzyści - używaj ich, ale jeśli chcesz ich używać tylko dlatego, że są obiektami - nie marnuj czasu na refaktoryzację :)
źródło
objects just because they are objects
nie jest to powód do refaktoryzacji :) Przeczytaj moją odpowiedź, nie tylko komentarze.Tak naprawdę nie przekazujesz danych w systemie OO - przekazujesz obiekty . Różnica polega na tym, że obiekty zawierają zarówno zachowanie, jak i dane. Dlatego nazywają to zorientowaniem obiektowym, a nie zorientowanym na dane.
Tak długo, jak nie potrzebujesz zachowania z danymi, zwykłe stare tablice php są tak samo dobre (lub złe, w zależności od twojego punktu widzenia), jak obiekty wartości.
źródło
Myślę, że to tylko kwestia dostosowania - w programowaniu jest wiele implementacji „obiektów” - Python i JavaScript mają uderzająco różne właściwości. PHP OO jest prawdopodobnie włamaniem - tablice PHP nie są „obiektami” w tradycyjnym znaczeniu - ale służą oczywistemu celowi. Jeśli nie chcesz, aby dane miały niestandardowe ZACHOWANIE, to po co używać obiektu?
EDYTOWAĆ:
re: niezmienne obiekty wartości
http://bradley-holt.com/2010/09/immutable-value-objects-in-php/
źródło