Не путайте OO Java с PHP. Java является единым языком парадигмы, что означает, что он выполняет только ОО. С другой стороны, PHP - это мультипарадигмальный язык, вы можете либо заниматься функциональным программированием, либо ОО, либо и тем, и другим.
Сейчас нет такой вещи, как «плохая» реализация ОО. ОО Java не является окончательной реализацией, которой должен или должен следовать каждый другой язык. Существуют определенные понятия, и оба языка полностью реализуют их по-своему (Java с самого начала, PHP с 5-й версии).
Итак, чтобы ответить на ваш вопрос: что CI делает и что вы делаете с ним, это правильно в мире PHP. Массивы PHP являются одной из самых гибких и полезных структур, и на самом деле полезно использовать массивы над объектами, когда ваши данные являются просто информацией (не несите с собой логику). Полностью OO-код - это не то же самое, что «только OO-код».
Если вы начинаете с PHP, используйте Java как справочник для хороших ООП, но не ограничивайте свое понимание PHP из-за того, что «Java делает это иначе». Вы можете по-настоящему облажаться, и парадигма не спасет вас, если вы не поймете концепции.
Если в любом случае вам больше нравится Java (в качестве личного предпочтения), загляните в Ruby для веб-разработки, они немного более тесно связаны.
Использование объектов вместо массивов только потому, что это объекты - не парадигма ОО, это просто личные предпочтения :)
Объекты дают удобное завершение кода в IDE, могут использоваться интерфейсы (подсказки типов) и наследование.
Если вы хотите использовать объекты вместо массива, потому что видите какие-то преимущества - используйте их, но если вы хотите использовать их только потому, что это объекты - не тратьте свое время на этот рефакторинг :)
источник
objects just because they are objects
это не повод для рефакторинга :) Читайте мой ответ, а не только комментарии.Вы действительно не передаете данные в ОО-системе - вы передаете объекты . Разница в том, что объекты содержат как поведение, так и данные. Вот почему они называют это объектно-ориентированным, а не ориентированным на данные.
Если вам не нужно поведение с вашими данными, то старые массивы php так же хороши (или плохи, в зависимости от вашей точки зрения), как объекты-значения.
источник
Я думаю, что это просто вопрос настройки - в программировании существует множество реализаций «объектов» - Python и Javascript имеют поразительно разные свойства. PHP OO, возможно, является хаком - PHP массивы не являются «объектами» в традиционном смысле - но они служат очевидной цели. Если вы не хотите, чтобы данные имели пользовательское поведение, зачем использовать объект?
РЕДАКТИРОВАТЬ:
Re: неизменяемые значения объектов
http://bradley-holt.com/2010/09/immutable-value-objects-in-php/
источник