Magento 2: Virtual Type Naming Convention


10

Data: 1 czerwca 2015 r. (Biorąc pod uwagę zmieniający się charakter Magento 2)

W Magento 2 możesz skonfigurować „typ wirtualny” w di.xmlpliku konfiguracyjnym modułu . Te typy wirtualne umożliwiają zmianę argumentów konkretnej wstrzykiwanej zależności.

W podstawowym kodzie Magento 2 wydają się istnieć dwie konwencje nazewnictwa dla typów wirtualnych. W pierwszym typ wirtualny ma nazwę, która wygląda identycznie jak prawdziwa nazwa klasy PHP.

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

w drugim stosuje się prosty ciąg bez ukośników

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

Czy jest jakaś praktyczna różnica w stosunku do powyższych dwóch konwencji nazewnictwa? tzn. czy nazwa, którą wybrałeś, virtualTypema jakikolwiek wpływ na jej zachowanie, czy jest to po prostu unikatowy globalnie ciąg identyfikujący typ, abyś mógł z niego później korzystać.


dobrze dla programistów uczących się Magento2, jest to dość zamieszanie, gdy sprawdzają argument, który ma nazwę klasy, a zamiast tego okazuje się być typem wirtualnym, chyba dobrze wskazałem tutaj alanstorm.com/magento_2_object_manager_virtual_types
huzefam

Odpowiedzi:


9

Nazwa typu wirtualnego jest po prostu unikalnym globalnie ciągiem. Nie ma różnicy w zachowaniu dla typów wirtualnych o różnych nazwach. Po prostu nie mamy silnej konwencji nazewnictwa dla typów wirtualnych. Osobiście wolę drugie podejście, ponieważ pokazuje, że jest to typ wirtualny, a nie prawdziwa klasa.


1
Jest to post 1,5 roku, czy nadal są konwencje, że nie ma konwencji? Powinienem używać wszystkiego, co chcę, dla typów wirtualnych, ale nadal zachęcasz mnie do korzystania z drugiego podejścia? A może masz już nowy standard?
Marius
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.