Je suis confus par la documentation de Magento 2 concernant les plugins :
Il est d'abord dit que:
Les plugins ne peuvent pas être utilisés avec des types virtuels
Mais alors, il est dit que:
Vous pouvez spécifier une classe, une interface ou un type virtuel comme nom de type que le plugin observe
Suis-je en train de manquer quelque chose ou la documentation se contredit-elle? Pouvons-nous créer des plugins pour les types virtuels?
magento2
plugin
magento-2.1
virtualtype
Raphael chez Digital Pianism
la source
la source
Réponses:
Les plugins fonctionneront pour le type virtuel mais uniquement si vous le spécifiez pour les classes ou interfaces parent, mais vous ne pouvez pas spécifier de plugin spécifique pour le type virtuel concret
la source
Non, les plugins sur les types virtuels ne fonctionnent pas.
Code de preuve de concept:
Plugin utilisant
<type>
:Plugin utilisant
<virtualType>
:Configuration DI:
Tester:
Résultat:
la source
di.xml
balise de déclaration seraittype
au lieu devirtualType
selon le document #totrustornottotrustthedoctype
etvirtualType
.