Podemos estender o controlador de duas maneiras: usando a preferência e usando o plugin. Mas eu não entendo isso, qual é bom e vantagens / desvantagens de preferência vs plugin.
<preference for="Magento\Checkout\Controller\Index\Index" type="mymodule\Helloworld\Controller\Index\Index" />
<type name="Magento\Catalog\Model\Product">
<plugin name="getname-test-module" type="mymodule\Helloworld\Model\Plugin\Product" sortOrder="10"/>
</type>
module
magento2
event-observer
plugin
Anand Ontigeri
fonte
fonte
Respostas:
Use plugins sempre que possível e, em seguida, observadores (consulte os prós e contras de cada um ), para evitar conflitos com outras extensões (módulos de terceiros).
A preferência deve ser usada apenas se toda a implementação da classe / interface principal for substituída por uma customizada. Leve em consideração que apenas uma preferência está ativa a qualquer momento (qual é definida pela sequência definida em
module.xml
); portanto, se outra extensão definir preferência para a mesma classe / interface, haverá um conflito (essas extensões não poderão funcionar juntas).fonte
fonte
informações adicionais: quase todas as preferências usadas no m2 interno é apenas para manter a relação entre a classe de concreto base e a interface, como:
como você é usado uma vez eu penso:
fonte