Verwechseln Sie Javas OO nicht mit PHPs. Java ist eine einzige Paradigmensprache, was bedeutet, dass es nur OO macht. PHP hingegen ist eine Multi-Paradigmen-Sprache. Sie können entweder funktionale Programmierung oder OO oder beides durchführen.
Jetzt gibt es keine "schlechte" Implementierung von OO. Javas OO ist keine endgültige Implementierung, der jede andere Sprache folgen sollte oder muss. Es gibt einige definitive Konzepte, und beide Sprachen implementieren sie vollständig auf ihre eigene Weise (Java von Anfang an, PHP seit Version 5).
Um Ihre Frage zu beantworten: Was CI macht und was Sie damit machen, ist in der PHP-Welt richtig. Die Arrays von PHP sind eine der flexibelsten und nützlichsten Strukturen, und es ist eigentlich eine gute Sache, Arrays über Objekten zu verwenden, wenn Ihre Daten nur Informationen sind (keine Logik mit sich führen). Vollständiger OO-Code ist nicht dasselbe wie "nur OO-Code".
Wenn Sie mit PHP beginnen, verwenden Sie Java als Referenz für gute OO-Praktiken, aber beschränken Sie Ihr Verständnis von PHP nicht, da "Java es anders macht". Sie können wirklich beides vermasseln, das Paradigma wird Sie nicht retten, wenn Sie die Konzepte nicht verstehen.
Wenn Sie Java auf jeden Fall mehr nach Ihren Wünschen finden (als persönliche Präferenz), schauen Sie sich Ruby für die Webentwicklung an, sie sind etwas enger miteinander verwandt.
Die Verwendung von Objekten anstelle von Arrays, nur weil es sich um Objekte handelt, ist kein OO-Paradigma, sondern nur persönliche Vorlieben :)
Objects bietet eine praktische Code-Vervollständigung in IDE, Schnittstellen (Typhinweise) und Vererbung können verwendet werden.
Wenn Sie Objekte anstelle von Arrays verwenden möchten, weil Sie Vorteile sehen - verwenden Sie sie, aber wenn Sie sie nur verwenden möchten, weil es sich um Objekte handelt - verschwenden Sie keine Zeit mit diesem Refactoring :)
quelle
objects just because they are objects
kein Grund für ein Refactoring ist :) Lesen Sie meine Antwort, nicht nur Kommentare.In einem OO-System werden Daten nicht wirklich weitergegeben - Sie geben Objekte weiter . Der Unterschied besteht darin, dass Objekte sowohl Verhalten als auch Daten enthalten. Deshalb nennen sie es objektorientiert und nicht datenorientiert.
Solange Sie kein Verhalten mit Ihren Daten benötigen, sind einfache alte PHP-Arrays genauso gut (oder schlecht, je nach Ihrer Sichtweise) wie Wertobjekte.
quelle
Ich denke, dies ist nur eine Frage der Anpassung - es gibt viele Implementierungen von "Objekten" in der Programmierung - Python und Javascript haben auffallend unterschiedliche Eigenschaften. PHP OO ist wohl ein Hack - PHP-Arrays sind keine "Objekte" im herkömmlichen Sinne - aber sie dienen einem offensichtlichen Zweck. Wenn Sie nicht möchten, dass die Daten ein benutzerdefiniertes VERHALTEN haben, warum sollten Sie dann ein Objekt verwenden?
BEARBEITEN:
re: unveränderliche Wertobjekte
http://bradley-holt.com/2010/09/immutable-value-objects-in-php/
quelle