Можете брать мой код:
https://github.com/nazar-pc/CleverStyle-CMS/blob/m...
Его очень легко перенести в свой проект, взяв трейт из
core/traits/Singleton.php
и модифицировав код в методе
::run()
, он при первом запуске сканирует все места где могут лежать хуки (в терминологии моего движка они триггеры событий), если вам не нужно сканирование файлов - можете вообще удалить тот участок.
При регистрации триггера передается замыкание, так что с помощью
use
можно пробросить туда нужные данные с места объявления.