Самый простой способ - создать базовый класс действий в lib
с помощью общих методов / действий.Тогда модули, которым необходимо использовать эту функциональность, могут просто расширить этот базовый класс вместо sfActions
.
Возможно, вы также можете просто использовать прослушиватель событий на method_not_found
sfComponent.Но это может работать не так, как ожидалось, если метод является действительным действием (и он также будет доступен во всех модулях и всех компонентах без какой-либо специальной логики обнаружения).
Самый сложный способ - создать плагин,Конечно, для этого потребуется сделать динамическую логику, которая работает с любыми моделями, чтобы ее можно было настроить, или изолировать соответствующие части схемы от схемы плагина.