Magento 2:虚拟类型命名约定


10

日期: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年

Answers:


9

虚拟类型的名称只是一个全局唯一的字符串。不同名称的虚拟类型在行为上没有区别。我们只是没有针对虚拟类型的强命名约定。我个人更喜欢第二种方法,因为它很明显表明这是虚拟类型,而不是实际类。


1
这是1.5年的帖子,约定是否仍然没有约定?我应该对虚拟类型使用我想要的任何东西,但是您仍然鼓励我使用第二种方法?还是您现在有新标准?
马里乌斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.