Escudriñando el código central de Magento 2 , parece que el viejo sistema de reescritura de clase ha sido arrancado y reemplazado por un nuevo sistema de inyección de dependencia.
Desafortunadamente, no hay documentación para este nuevo sistema.
¿Alguien tiene una muestra de configuración de módulo que permita a un usuario, en Magento 2, "reescribir" la clase Mage_Catalog_Model_Product
con una nueva clase Packagename_Modulename_Model_Product
, utilizando el nuevo sistema de inyección de dependencia?
Respuestas:
La configuración de Di se movió a archivos di.xml y se modificó el formato. Ahora las preferencias se ven así (di.xml):
fuente
Trabajando de adentro hacia afuera, pude obtener una reescritura trabajando con lo siguiente
Sin embargo, hay mucho más código de sistemas en la implementación de inyección de dependencia, por lo que no está claro si lo anterior funcionará en la versión final lanzada de Magento 2.
fuente
Tienes razón, las reescrituras de clase se eliminaron por completo y se reemplazaron con DI. Las siguientes notas son de la sección sobre cambios en el Marco de aplicación :
Magento 1.x - Nodo: / global // {subruta que corresponde al nombre de fábrica + literal "reescribir"}
Magento 2.x - Nodo: / global / di / aliases
No he intentado utilizar esto en un módulo que se ejecuta en Magento 2.0, pero parece que básicamente define un alias para el nombre de la clase en lugar de utilizar la complicada jerarquía de xml para reescrituras por módulo.
fuente