Magento 2: Конвенція про іменування віртуального типу


10

Дата: 1 червня 2015 р. (Враховуючи мінливий характер 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

Відповіді:


9

Ім'я віртуального типу - це просто глобально унікальна рядок. Немає різниці в поведінці для різних віртуальних типів. У нас просто немає чіткої угоди про іменування для віртуальних типів. Я особисто віддаю перевагу другому підходу, оскільки це дає зрозуміти, що це віртуальний тип, а не реальний клас.


1
Це 1,5-місячний пост, чи все-таки конвенції все-таки відсутні? Я повинен використовувати все, що я хочу, для віртуальних типів, але ви все ще заохочуєте мене використовувати другий підхід? Або у вас вже є новий стандарт?
Маріус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.