Data: 30 de maio de 2015 (dada a natureza mutável do Magento 2).
O Magento 2 introduziu um conceito de plug-in , implementado através de um padrão interceptador .
O que não está claro nos documentos é: quais classes e objetos no Magento são "interceptáveis"? Ou seja, você configura um plug-in com XML parecido com o seguinte
<config>
<type name="{ObservedType}">
<plugin name="{pluginName}" type="{PluginClassName}" sortOrder="1" disabled="true"/>
</type>
</config>
mas não está claro quais classes são válidas como ObservedType
. Este artigo antigo da wiki fornece algumas dicas quando diz
Observe que o recurso de plug-in não se aplica a - Classes criadas sem injeção de dependência, ou seja, criadas com o operador new diretamente, -Final methods, -Final classes
Existe algum objeto criado por injeção de dependência disponível para interceptação? A ObservedType
necessidade de ser a dica de tipo fornecida no __construct
método a ou pode (deveria?) Ser outra coisa?
Principalmente tentando entender o que pode e o que não pode ser feito com um interceptador Magento 2 antes de começar a usá-los.