Magento 2 - o Que é arquivo Interceptor.php?
-
29-09-2020 - |
Pergunta
Quando eu overrided ficheiro de controlador de catálogo do produto e/ou executou este comando:
php bin/mangento de instalação:di:compilar
E, em seguida, esse arquivo "Interceptor.php" foi gerado no magento_root\var\generation\myPool\myModule\Controller\Adminhtml\Product\Initialization\Helper\Interceptor.php
Qualquer pessoa, você sabe?O que é este arquivo?
Solução
Magento 2 sistema de plugin com base no Interceptor padrão.Chamadas para quase qualquer módulo pode ser interceptadas e alteradas.Grande melhoria sobre a reconfiguração do padrão no Magento 1, então, obviamente, - não mais de reconfiguração de conflito!
Por exemplo:
DI.xml
<config>
<type name="{ObservedType}">
<plugin name="{pluginName}" type="{PluginClassName}" sortOrder="1" disabled="false" />
</type>
</config>
Ordem de classificação define a ordem de se vários plugins interceptar o mesmo item.É possível interceptar antes de, depois de e em torno de uma função/método.
"Antes do" interceptor
class Plugin
{
public function beforeSetName(\Magento\Catalog\Model\Product $subject, $name)
{
return array('(' . $name . ')');
}
}
'Depois de' interceptor
class Plugin
{
public function afterGetName(\Magento\Catalog\Model\Product $subject, $name)
{
return array('|' . $name . '|');
}
}
'Cerca de' interceptor
class Plugin
{
public function aroundSave(\Magento\Catalog\Model\Product $subject, \Closure $proceed, $name)
{
$this->doSomethingBeforeProductIsSaved();
$returnValue = $proceed($name);
if ($returnValue) {
$this->postProductToFacebook($name);
}
return $returnValue;
}
}
O Checkout Magento 2 exemplo de módulo de recompra para um módulo que demonstra a interceptação.
Interceptores são substituto para reescreve.Interceptores complementar, mas não substituir eventos e observadores.
Espero que ajude.