Persistencia · Pregunta 7 de 12
¿Qué método llama Extbase después de cargar un objeto de modelo desde la base de datos, para poder inicializar allí, por ejemplo, propiedades ObjectStorage?
1 respuesta es correcta. Fácil
Mostrar solución
Solución
- A initializeObject()
Explicación
Al cargar desde la base de datos, Extbase no llama al constructor: el DataMapper crea el objeto con la biblioteca doctrine/instantiator y asigna los valores directamente. A continuación llama a initializeObject(). Por eso se recomienda poner inicializaciones como $this->speakers = new ObjectStorage(); en initializeObject() y llamar también a este método desde el constructor; así la propiedad queda establecida tanto para new Conference() como para los objetos cargados. Confiar solo en el constructor es la trampa típica. initializeAction() pertenece al controlador y se ejecuta antes de cada acción, no al cargar un modelo.