Ne confondez pas OO Java avec PHP. Java est un langage à paradigme unique, ce qui signifie qu'il ne fait que OO. PHP d'autre part est un langage multi paradigme, vous pouvez soit faire de la programmation fonctionnelle ou OO ou les deux.
Maintenant, il n'y a pas de "mauvaise" implémentation d'OO. L'OO de Java n'est pas une implémentation définitive que tout autre langage doit ou doit suivre. Il existe des concepts définitifs, et les deux langages les implémentent entièrement à leur manière (Java depuis le début, PHP depuis la version 5).
Donc, pour répondre à votre question: ce que fait CI et ce que vous en faites est juste dans le monde PHP. Les tableaux de PHP sont l'une de ses structures les plus flexibles et les plus utiles et c'est en fait une bonne chose d'utiliser des tableaux sur des objets lorsque vos données ne sont que des informations (ne transportez pas de logique avec elles). Un code entièrement OO n'est pas la même chose que «uniquement le code OO».
Si vous commencez avec PHP, utilisez Java comme référence pour les bonnes pratiques OO mais ne limitez pas votre compréhension de PHP à cause de la chose "Java fait les choses différemment". Vous pouvez vraiment bousiller les deux, le paradigme ne vous sauvera pas si vous ne comprenez pas les concepts.
Si dans tous les cas vous trouvez Java plus à votre goût (comme préférence personnelle), consultez Ruby pour le développement Web, ils sont un peu plus étroitement liés.
Utiliser des objets au lieu de tableaux simplement parce que ce sont des objets n'est pas un paradigme OO, c'est juste des préférences personnelles :)
Les objets donnent l'achèvement de code pratique dans l'IDE, les interfaces (indication de type) et l'héritage peuvent être utilisés.
Si vous voulez utiliser des objets au lieu d'un tableau parce que vous voyez des avantages - utilisez-les, mais si vous voulez les utiliser simplement parce que ce sont des objets - ne perdez pas votre temps à ce refactoring :)
la source
objects just because they are objects
n'est pas une raison pour une refactorisation :) Lisez ma réponse, pas seulement des commentaires.Vous ne transmettez pas vraiment de données dans un système OO - vous transmettez des objets . La différence est que les objets contiennent des comportements ainsi que des données. C'est pourquoi ils l'appellent orienté objet et non orienté données.
Tant que vous n'avez pas besoin de comportement avec vos données, les anciens tableaux PHP sont tout aussi bons (ou mauvais, selon votre point de vue) que les objets de valeur.
la source
Je pense que c'est juste une question d'ajustement - il existe de nombreuses implémentations d '"objets" en programmation - Python et Javascript ont des propriétés très différentes. PHP OO est sans doute un hack - les tableaux PHP ne sont pas des "objets" au sens traditionnel - mais ils servent un objectif évident. À moins que vous ne vouliez que les données aient un COMPORTEMENT personnalisé, alors pourquoi utiliser un objet?
ÉDITER:
re: objets de valeur immuables
http://bradley-holt.com/2010/09/immutable-value-objects-in-php/
la source