Я смущен документацией Magento 2 относительно плагинов :
Сначала сказано, что:
Плагины нельзя использовать с виртуальными типами
Но тогда сказано, что:
Вы можете указать класс, интерфейс или виртуальный тип в качестве имени типа, которое наблюдает плагин
Я что-то упустил или документация противоречит самой себе? Можем ли мы создавать плагины для виртуальных типов?
magento2
plugin
magento-2.1
virtualtype
Рафаэль в цифровом пианизме
источник
источник
Ответы:
Плагины будут работать для виртуального типа, но только если вы укажете его для родительских классов или интерфейсов, но вы не сможете указать плагин, специфичный для конкретного виртуального типа.
источник
Нет, плагины на виртуальных типах не работают.
Доказательство концепции кода:
Плагин использует
<type>
:Плагин использует
<virtualType>
:Конфигурация DI:
Тестовое задание:
Результат:
источник
di.xml
тег объявления будетtype
вместо того,virtualType
чтобы соответствовать документу #totrustornottotrustthedoctype
иvirtualType
плагин.