Os plugins são onipresentes, pois é possível modificar / substituir o comportamento de qualquer método público no sistema. As personalizações devem ser feitas usando plug-ins para métodos / classes públicos marcados com @api
anotação (API pública estável) sempre que possível. Essa abordagem garante que a personalização permaneça funcional após os novos lançamentos do Magento. Além dos before
/ after
plugins mencionados na pergunta, é possível criar around
plugins para substituir o comportamento original.
Por outro lado, os observadores são um mecanismo de extensão herdado herdado do Magento 1, é bastante limitado e deve ser evitado, se possível. No entanto, diferentemente dos plug-ins, eles podem fornecer pontos de extensão dentro de métodos protegidos / privados.