Persistenz · Frage 7 von 12

Welche Methode ruft Extbase auf, nachdem ein Model-Objekt aus der Datenbank geladen wurde, sodass man dort z. B. ObjectStorage-Properties initialisieren kann?

1 Antwort ist richtig. Einfach

Lösung anzeigen

Lösung

  • A initializeObject()

Erklärung

Beim Laden aus der Datenbank ruft Extbase den Konstruktor nicht auf: Der DataMapper erzeugt das Objekt mit der Bibliothek doctrine/instantiator und setzt die Werte direkt. Danach ruft er initializeObject() auf. Die Empfehlung lautet deshalb: Initialisierungen wie $this->speakers = new ObjectStorage(); in initializeObject() schreiben und diese Methode zusätzlich im Konstruktor aufrufen – so ist die Property sowohl bei new Conference() als auch bei geladenen Objekten gesetzt. Nur auf den Konstruktor zu setzen ist die typische Falle. initializeAction() gehört zum Controller und läuft vor jeder Action, nicht beim Laden eines Models.

Zertifikate & Prüfungen

Welche Prüfung kommt als Nächstes?

19 Prüfungen kannst du schon üben, über 21 stimmst du gerade ab. Sieh dir alle Zertifikate mit offiziellen Infos an, gib deine Stimme ab oder schlag deine Prüfung vor.

Zur Zertifikatsübersicht