Magento 2: convenzione di denominazione dei tipi virtuali


10

Data: 1 giugno 2015 (vista la natura mutevole di Magento 2)

In Magento 2, puoi configurare un "tipo virtuale" nel di.xmlfile di configurazione di un modulo . Questi tipi virtuali consentono di modificare gli argomenti di una specifica dipendenza iniettata.

Nel codice Magento 2 di base, sembrano esserci due convenzioni di denominazione per i tipi virtuali. Nel primo, un tipo virtuale ha un nome che sembra identico a un vero nome di classe PHP.

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

nel secondo, viene utilizzata una stringa semplice, senza barra rovesciata

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

C'è qualche differenza pratica rispetto alle due convenzioni di denominazione sopra menzionate? cioè il nome che hai scelto per virtualTypeavere un impatto sul suo comportamento, o è solo una stringa univoca a livello globale che identifica il tipo in modo da poterlo utilizzare in seguito.


bene per gli sviluppatori che imparano Magento2, questa è piuttosto una confusione quando controllano un argomento che ha un nome di classe, e invece si rivela essere un tipo virtuale, immagino ben sottolineato qui alanstorm.com/magento_2_object_manager_virtual_types
huzefam

Risposte:


9

Il nome del tipo virtuale è solo una stringa univoca a livello globale. Non vi è alcuna differenza nel comportamento per tipi virtuali con nomi diversi. Non abbiamo una forte convenzione di denominazione per i tipi virtuali. Personalmente preferisco il secondo approccio perché è ovvio che si tratta di un tipo virtuale, non di una vera classe.


1
Trattandosi di un post di 1,5 anni, le convenzioni sono ancora inesistenti? Dovrei usare ciò che desidero sempre per i tipi virtuali, ma mi incoraggi ancora a utilizzare il secondo approccio? O hai un nuovo standard ormai?
Marius
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.