[TYPO3-german] Extbase, Object to array?
Dr. Dieter Porth
web37p2 at web59550.greatnet-hosting.de
Tue Jun 27 19:38:23 CEST 2017
Hallo Mario,
Leider enthält dein Code-Snippet keine wesentlichen Informationen,
sondern du versucht das nachzubauen, was TYPO3 nativ tut.
Du hast also eine Abfrage mit dem Repository gemacht und möchtest das
Ergebnis iterieren, zumindest vermute ich dies
Normalerweise kann du die Suchergebnisse direkt iterieren, ohne sie
vorab explizit zu konvertieren. Wenn es dann aber sein muss, solltest
die toArray()-Methode beim Query-Aufruf im Repository verwenden. Dann
kümmert sich TYPO3 um den Rest - zumindest auf der ersten Ebene.
Die Lazy-Annotation kann manchmal Schwierigkeiten machen, weil plötzlich
die Objektklassen nicht zur Verfügung stehen und damit entsprechende
Klassen fehlen. Ich optimiere meist erst nachträglich mit @lazy.
P.S. Ich persönlich habe die Magie von @lazy nicht wirklich verstanden
und bin schon zwei Mal auf die Nase gefallen, weil TYPO3 lieber lazy
blieb statt eine spät benötigte Klasse noch nachzuladen.
Mit besten Grüßen
Dieter
.
Am 27.06.2017 um 09:27 schrieb Mario T:
> Hallo Liste!
>
> ich versuche gerade verzweifelt Objekte (mit Subobjekten, Lazy
> Loading) zu Arrays zu "konvertieren". Ich habe es mit einer eigenen
> Funktion versucht:
>
> private function objectToArray($obj)
> {
> if(is_object($obj)) $obj = (array) $obj;
> if(is_array($obj)) {
> $new = array();
> foreach($obj as $key => $val) {
> //$new[$key] = $val;
> $new[$key] = $this->objectToArray($val);
> }
> }
> else $new = $obj;
> return $new;
> }
>
> Allerdings erhalte ich teilweise (je nachdem welche Objekte ich
> konvertiere) ein memory_limit-Error (obwohl die Objekte nicht groß
> sind und das memory_limit deutlich höher eingestellt ist).
>
> Wäre hier der TypeConverter die Lösung? Falls ja, wie setze ich den ein?
>
> Was ich eigentlich machen möchte ist ein vorher/nachher-Vergleich
> (ähnlich wie sysHistory).
>
> Ich danke Euch!
--
----
Dr. Dieter Porth - Web-Entwickler
More information about the TYPO3-german
mailing list