Событийная модель
В системе реализован паттерн Observer, позволяющий связывать части системы посредством событий. В некотором участке кода создается событие (fire event) с определенными свойствами (имя, набор параметров). В другом месте могут быть установлены listener'ы для данного типа событий - методы, которые должны быть вызваны при возникновении события.
В частности, существуют 6 системных событий, возникающих при соверешении общих операций над объектами (как в админ-интерфейсе, так и во front-end):
- onBeforeAdd (перед созданием объекта)
- onAfterAdd (после создания)
- onBeforeUpdate (перед обновлением)
- onAfterUpdate (после обновления)
- onBeforeDelete (перед удалением)
- onAfterDelete (после удаления).
При помощи событий можно реализовывать сложные алгоритмы сохранения целостности данных, выполнять служебные процедуры, создавать системы оповещения и т.д. Например, на основе событий add/update/delete можно реализовать систему индексирования данных для полнотекстового поиска.


