日期:2015年6月1日(考虑到Magento 2不断变化的性质)
在Magento 2中,您可以在模块的配置文件中配置“虚拟类型”di.xml
。这些虚拟类型使您可以更改特定注入依赖项的参数。
在Magento 2的核心代码中,虚拟类型似乎有两种命名约定。首先,虚拟类型的名称看起来与真实的PHP类名称相同。
#File: app/code/Magento/CatalogRule/etc/di.xml
<virtualType name="Magento\Catalog\Pricing\Price\Pool" ...
在第二个中,使用了一个简单的无反斜杠的字符串
#File: app/code/Magento/CatalogSearch/etc/di.xml
<virtualType name="advancedSearchFilterList" ...
上面两个命名约定有什么实际区别?例如,您选择的名称是否virtualType
会对它的行为产生影响,或者仅仅是一个全局唯一的字符串来标识该类型,以便以后使用。
对于学习Magento2的开发人员而言,这很好,当他们检查具有类名的参数时,这真是一个混乱,相反,它原来是虚拟类型,我想很好地在这里指出了alanstorm.com/magento_2_object_manager_virtual_types
—
huzefam 2015年