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

_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an