Есть некая задача, для решения которой никак не могу выбрать правильный способ (перфекционизм мучает )
Есть модели:
Код: Выделить всё
Plans
Invoices
При сейве Invoices оповестить об этом Plans (т.е. инвойс оплачен, нужно активировать план).
Использовать существующие Events в Yii (как показано в большинстве примеров о том как их использовать) не вижу возможности, потому как при екшене сохранения инвойса никаким образом не присутствует план и посему нельзя прицепить к нему событие.
Идея реализации:
Сделать механизм глобальных хуков.
Т.е. создается компонент (Hooks) который прелоадится при ините приложения и читает файл, пусть это будет protected/config/hooks.php.
В этом файле вешаются события, к примеру:
Код: Выделить всё
// hooks.php
Yii::app()->hooks->onInvoicePaid('Plan', 'onInvoicePaidHandler');
-------
Возможно у Вас есть какие-то идеи (как можно решить этот вопрос без глобальных хуков, как бы сделали Вы)?