Persistance · Question 7 sur 12
Quelle méthode Extbase appelle-t-il après le chargement d'un objet modèle depuis la base de données, afin que l'on puisse par exemple y initialiser les propriétés ObjectStorage ?
1 réponse est correcte. Facile
Afficher la solution
Solution
- A initializeObject()
Explication
Lors du chargement depuis la base de données, Extbase n'appelle pas le constructeur : le DataMapper crée l'objet avec la bibliothèque doctrine/instantiator et définit directement les valeurs. Il appelle ensuite initializeObject(). La recommandation est donc : placer les initialisations comme $this->speakers = new ObjectStorage(); dans initializeObject() et appeler aussi cette méthode depuis le constructeur – ainsi la propriété est définie aussi bien pour new Conference() que pour les objets chargés. Se fier uniquement au constructeur est le piège typique. initializeAction() appartient au contrôleur et s'exécute avant chaque action, pas lors du chargement d'un modèle.