Los complementos son omnipresentes ya que es posible modificar / reemplazar el comportamiento de cualquier método público en el sistema. Las personalizaciones deben realizarse utilizando complementos para métodos / clases públicos marcados con @api
anotaciones (API pública estable) siempre que sea posible. Tal enfoque garantiza que la personalización seguirá siendo funcional después de los nuevos lanzamientos de Magento. Además de before
/ after
plugins mencionados en la pregunta, es posible crear around
complementos para sustituir el comportamiento original.
Por otro lado, los observadores son un mecanismo de extensión heredado heredado de Magento 1, es bastante limitado y debe evitarse si es posible. Sin embargo, a diferencia de los complementos, pueden proporcionar puntos de extensión dentro de métodos protegidos / privados.