Magento 2: Convenção de Nomenclatura de Tipos Virtuais

10

Data: 1 de junho de 2015 (dada a natureza mutável do Magento 2)

No Magento 2, você pode configurar um "tipo virtual" no di.xmlarquivo de configuração de um módulo . Esses tipos virtuais permitem alterar os argumentos de uma dependência injetada específica.

No código principal do Magento 2, parece haver duas convenções de nomenclatura para tipos virtuais. No primeiro, um tipo virtual tem um nome que parece idêntico a um nome de classe PHP real.

#File: app/code/Magento/CatalogRule/etc/di.xml
<virtualType name="Magento\Catalog\Pricing\Price\Pool" ...

no segundo, uma string simples, sem barra invertida, é usada

#File: app/code/Magento/CatalogSearch/etc/di.xml
<virtualType name="advancedSearchFilterList" ...

Existe alguma diferença prática nas duas convenções de nomenclatura acima? ou seja, o nome que você escolheu para virtualTypeimpactar seu comportamento ou é apenas uma sequência globalmente única que identifica o tipo para que você possa usá-lo mais tarde.

Alan Storm
fonte
bem, para os desenvolvedores que estão aprendendo Magento2, isso é uma grande confusão quando eles checam um argumento que tem um nome de classe e, em vez disso, se torna um tipo virtual, acho bem indicado aqui alanstorm.com/magento_2_object_manager_virtual_types
huzefam

Respostas:

9

O nome do tipo virtual é apenas uma sequência globalmente exclusiva. Não há diferença de comportamento para tipos virtuais com nomes diferentes. Nós simplesmente não temos uma convenção de nomenclatura forte para tipos virtuais. Pessoalmente, prefiro a segunda abordagem porque torna óbvio que esse é um tipo virtual, não uma classe real.

Anton Kril
fonte
1
Sendo um post de 1,5 ano, as convenções ainda não existem? Devo usar o que eu quiser para tipos virtuais, mas você ainda me incentiva a usar a segunda abordagem? Ou você tem um novo padrão agora?
Marius