jobo: einzelne Getter oder eine Methode - Datenrückgabe Struktur

Beitrag lesen

Hallo,

Ich sehe auch, wenn eine les- und schreibbare Eigenschaft public ist, dass man darauf zugreifen darf.

Davon gibt es aber fast keine, hätte ich jetzt gemeint.

Am besten von den mir bekannten Sprachen finde ich das bei C# gelöst.

... Getter und Setter werden direkt der Property hinzugefügt und sind nach außen hin nicht sichtbar. ... Nunja, PHPs OOP ist eine nette Dreingabe, die man nicht mit von anderen Systemen bekannten Vorgehensweisen überstrapazieren sollte.

Naja, ich meine, dass du mit __get den selben Effekt erreichen kannst.

In der Vergangenheit wollte ich selten über alle Eigenschaften eines Objekts iterieren.

Nee, aber du willst vielleicht doch auf das Objekt zugreifen (können). Request-Object. Oder Dispatcher? Dann aber nicht zum iterieren.

Beim Objekt hast du aber wieder das Problem, wenn du strikt Coding-Style-kompatibel zum ZF sein willst, dass du dann Getter und Setter schreiben solltest und mit diesen keine Typkonvertierung nach array vornehmen kannst.

Dispatcher::getInstance()->getRequest()->getParams(); so in der Art hätte ich gedacht. Die Instanz vom Dispatcher ermöglicht den Zugriff auf das Request-Objekt, welches wieder über getParams() ein Array(!) der Paramenter, vielleicht assoziativ, wiedergibt.

Im Allgemeinen halte ich es aber für programmiertechnischen Unsinn, wenn eine Klasse, die Eigenschaften und Methoden zu einem bestimmten Thema bereitstellt, ein Objekt oder Array liefert, das nichts weiter als die reinen Daten ihrer selbst beinhaltet.

Das würde ich auch meinen. ->fetchAllEntries(ASSOC) sollte die Methode einer Model-Klasse sein, die alle Daten als assoziatives Array wiedergibt.

Dann schon lieber einen Iterator oder ähnliches, aber eingebettetes Konstrukt.

Der Iterator verwurstet doch Arraykonstruktionen, oder? Bzw. kann mit dem IteratorIterator rekursiv zB. das Ergebnis von scandir() durchlaufen.

Gruß

jobo