Código anterior, cuando alguien le pide que cree una instancia Magento\Customer\Api\AddressRepositoryInterface, creará una instancia de un objeto Magento \ Customer \ Model \ ResourceModel \ AddressRepository (el atributo type).
La configuración de preferencia de clase no es solo para interfaces, también podemos cambiar las clases reales.
Puede crear la clase 'customModel' para 'CustomerManagement' y hacer los cambios. Sistema de preferencia de clase como un reemplazo para el sistema de reescritura de clase.
En el código anterior, estamos enviando un objeto como argumento, estamos diciendo sistema para insertar la clase "Proxy" como un objeto con el nombre de groupManagement. Además, también podemos usar Argumentos para reemplazar el argumento existente.
En el código anterior, public function clean($object)en la clase visitante se llama a la función pública afterClean(Visitor $subject, $logResourceModel)que está en la clase Log.
4 tipos virtuales
Crear un tipo virtual es algo así como crear una subclase para una clase existente.
Para obtener más notas, consulte los ejemplos prácticos que mencioné como enlaces de Alan; en la práctica, puede obtener una experiencia más clara.
¿Tiene alguna idea sobre la configuración del conjunto con ifconfig en di.xml para habilitar / deshabilitar el proceso del módulo? Si se trata de eso, ayúdame a resolver el problema.
Kartik Asodariya
Información muy útil.
Shivam
2
¿Cómo alguien aprende todas estas cosas?
Mohammed Joraid
Entonces, ¿la <preferencia> en lugar de llamar a la clase en "for", llama a la clase en "type" o algo así? Todavía estoy confundido sobre esto. @@
Respuestas:
What case We use di.xml ?
Tomemos un ejemplo rápido del módulo de cliente Magento 2.
1. referencia
Código anterior, cuando alguien le pide que cree una instancia
Magento\Customer\Api\AddressRepositoryInterface
, creará una instancia de un objeto Magento \ Customer \ Model \ ResourceModel \ AddressRepository (el atributo type).La configuración de preferencia de clase no es solo para interfaces, también podemos cambiar las clases reales.
Puede crear la clase 'customModel' para 'CustomerManagement' y hacer los cambios. Sistema de preferencia de clase como un reemplazo para el sistema de reescritura de clase.
http://alanstorm.com/magento_2_object_manager_preferences
2. Argumentos
En el código anterior, estamos enviando un objeto como argumento, estamos diciendo sistema para insertar la clase "Proxy" como un objeto con el nombre de
groupManagement
. Además, también podemos usar Argumentos para reemplazar el argumento existente.http://alanstorm.com/magento_2_object_manager_argument_replacement
3. Complemento
En el código anterior,
public function clean($object)
en la clase visitante se llama a la función públicaafterClean(Visitor $subject, $logResourceModel)
que está en la clase Log.4 tipos virtuales
Crear un tipo virtual es algo así como crear una subclase para una clase existente.
Para obtener más notas, consulte los ejemplos prácticos que mencioné como enlaces de Alan; en la práctica, puede obtener una experiencia más clara.
Espero que esto ayude.... :)
fuente