Плагины вездесущи, поскольку можно изменить / заменить поведение любого открытого метода в системе. Настройка должна быть выполнена с использованием плагинов для открытых методов / классов, помеченных @api
аннотацией (стабильный общедоступный API), когда это возможно. Такой подход гарантирует, что настройка останется функциональной после новых выпусков Magento. В дополнение к before
/ after
плагинов, упомянутых в вопросе, можно создавать around
плагины, чтобы заменить оригинальное поведение.
С другой стороны, наблюдатели являются устаревшим механизмом расширения, унаследованным от Magento 1, он довольно ограничен и его следует по возможности избегать. Однако, в отличие от плагинов, они могут предоставлять точки расширения внутри защищенных / закрытых методов.