Não confunda OO do Java com PHP. Java é uma linguagem de paradigma único, o que significa que ele faz apenas OO. O PHP, por outro lado, é uma linguagem de paradigmas múltiplos, você pode fazer programação funcional ou OO ou ambos.
Agora não existe uma implementação "ruim" do OO. OO do Java não é uma implementação definitiva que todas as outras linguagens devem ou devem seguir. Existem alguns conceitos definitivos, e ambas as linguagens os implementam totalmente da sua maneira (Java desde o início, PHP desde a versão 5).
Portanto, para responder à sua pergunta: O que o CI faz e o que você está fazendo com ele está certo no mundo do PHP. As matrizes do PHP são uma de suas estruturas mais flexíveis e úteis e é realmente bom usar matrizes sobre objetos quando seus dados são apenas informações (não carregue lógica com eles). Código OO completo não é a mesma coisa que "apenas código OO".
Se você estiver iniciando com PHP, use Java como referência para boas práticas de OO, mas não limite seu entendimento do PHP por causa da coisa "Java faz diferente". Você pode realmente estragar as duas coisas, o paradigma não o salvará se você não entender os conceitos.
Se, em qualquer caso, você achar que Java é mais do seu agrado (como uma preferência pessoal) consulte o Ruby para desenvolvimento na Web, eles estão um pouco mais relacionados.
Usa objetos em vez de matrizes apenas porque são objetos não é um paradigma OO, são apenas preferências pessoais :)
Objetos oferece fácil conclusão de código no IDE, interfaces (dicas de tipo) e herança podem ser usadas.
Se você deseja usar objetos em vez de matriz porque vê algum benefício - use-os, mas se quiser usá-los apenas porque são objetos - não perca seu tempo com essa refatoração :)
fonte
objects just because they are objects
não é um motivo para refatoração :) Leia minha resposta, não apenas comentários.Você realmente não transmite dados em um sistema OO - transmite objetos . A diferença é que os objetos contêm comportamento e dados. É por isso que eles chamam de orientada a objetos e não de dados.
Contanto que você não precise se comportar com seus dados, as matrizes php antigas e simples são tão boas (ou ruins, dependendo do seu ponto de vista) quanto os objetos de valor.
fonte
Eu acho que isso é apenas uma questão de ajuste - existem muitas implementações de "objetos" na programação - Python e Javascript têm propriedades surpreendentemente diferentes. O PHP OO é indiscutivelmente um hack - as matrizes PHP não são "objetos" no sentido tradicional - mas elas servem a um propósito óbvio. A menos que você queira que os dados tenham o COMPORTAMENTO personalizado, por que usar um objeto?
EDITAR:
re: objetos de valor imutável
http://bradley-holt.com/2010/09/immutable-value-objects-in-php/
fonte