Сразу хочу предупредить, что весь материал есть в документациях под тем или иным соусом. Я же постарался скомпоновать всю информацию по событиям в одном месте.
Вообще, что такое событие в программировании? И вот что говорит википедия:
Событие это сообщение которое возникает в различных участках исполняемого кода при выполнении определенных условий.
Иными словами, программист заранее в своем коде расставляет вызов событий, чтобы в будущем иметь возможность управлять поведением своего приложения в зависимости от ситуации без внедрения в ядро.
В базах данных существует такое понятие как триггер. Т.е. некая хранимая процедура вызываемая при наступлении определенных событий. Например, добавление, удаление…
Когда я делал пакет EvoBlade под MODX, то столкнулся с аналогичной проблемой - компиляция из строки. И пакетов реализующих данный функционал полно - как пример wpb/string-blade-compiler
Но можно реализовать проще, как это сделано тут facuz/laravel-themes (ex teepluss\theme)