No confunda OO de Java con PHP. Java es un lenguaje de paradigma único, lo que significa que solo hace OO. PHP, por otro lado, es un lenguaje de paradigmas múltiples, puede hacer programación funcional u OO o ambos.
Ahora no existe una implementación "mala" de OO. La OO de Java no es una implementación definitiva que cualquier otro lenguaje debería o debe seguir. Hay algunos conceptos definitivos, y ambos lenguajes los implementan completamente a su manera (Java desde el principio, PHP desde la versión 5).
Entonces, para responder a su pregunta: lo que hace CI y lo que está haciendo con él está en el mundo de PHP. Las matrices de PHP son una de sus estructuras más flexibles y útiles y, en realidad, es bueno usar matrices sobre objetos cuando sus datos son solo información (no lleve lógica con ellos). El código OO completo no es lo mismo que "solo código OO".
Si está comenzando con PHP, use Java como referencia para buenas prácticas de OO, pero no limite su comprensión de PHP debido a lo que dice "Java lo hace de manera diferente". Realmente puedes meter la pata en ambos, el paradigma no te salvará si no entiendes los conceptos.
Si, en cualquier caso, encuentra Java más a su gusto (como preferencia personal), consulte Ruby para el desarrollo web, están un poco más estrechamente relacionados.
Usa objetos en lugar de matrices solo porque sus objetos no son un paradigma OO, son solo preferencias personales :)
Los objetos proporcionan una finalización útil del código en IDE, se pueden utilizar interfaces (sugerencias de tipo) y herencia.
Si desea usar objetos en lugar de matriz porque ve algún beneficio, úselos, pero si desea usarlos solo porque son objetos, no pierda su tiempo en esta refactorización :)
fuente
objects just because they are objects
que no es una razón para refactorizar :) Lea mi respuesta, no solo comentarios.Realmente no pasa datos en un sistema OO, pasa objetos alrededor. La diferencia es que los objetos contienen comportamiento y datos. Es por eso que lo llaman orientado a objetos y no orientado a datos.
Siempre que no necesite un comportamiento con sus datos, las matrices php antiguas simples son tan buenas (o malas, según su punto de vista) como los objetos de valor.
fuente
Creo que esto es solo una cuestión de ajuste: hay muchas implementaciones de "objetos" en la programación: Python y Javascript tienen propiedades sorprendentemente diferentes. PHP OO es posiblemente un truco: las matrices PHP no son "objetos" en el sentido tradicional, pero tienen un propósito obvio. A menos que desee que los datos tengan un COMPORTAMIENTO personalizado, ¿por qué usar un objeto?
EDITAR:
re: objetos de valor inmutable
http://bradley-holt.com/2010/09/immutable-value-objects-in-php/
fuente