Fecha: 1 de junio de 2015 (dada la naturaleza cambiante de Magento 2)
En Magento 2, puede configurar un "tipo virtual" en el di.xml
archivo de configuración de un módulo . Estos tipos virtuales le permiten cambiar los argumentos de una dependencia inyectada específica.
En el código principal de Magento 2, parece haber dos convenciones de nomenclatura para tipos virtuales. En el primero, un tipo virtual tiene un nombre que parece idéntico a un nombre de clase PHP real.
#File: app/code/Magento/CatalogRule/etc/di.xml
<virtualType name="Magento\Catalog\Pricing\Price\Pool" ...
en el segundo, se usa una cadena simple sin barra invertida
#File: app/code/Magento/CatalogSearch/etc/di.xml
<virtualType name="advancedSearchFilterList" ...
¿Hay alguna diferencia práctica en las dos convenciones de nombres anteriores? es decir, el nombre que eligió virtualType
tiene un impacto en su comportamiento, o es solo una cadena global única que identifica el tipo para que pueda usarlo más adelante.
fuente
Respuestas:
El nombre de tipo virtual es solo una cadena globalmente única. No hay diferencia en el comportamiento de tipos virtuales con nombres diferentes. Simplemente no tenemos una convención de nomenclatura sólida para los tipos virtuales. Personalmente prefiero el segundo enfoque porque hace obvio que este es un tipo virtual, no una clase real.
fuente