Мне нужно выполнять действия до и после каждого метода события внутри каждого из моих наблюдателей. Поскольку наблюдателей много, а действия, которые мне нужно выполнить, одинаковы, я ищу способ активировать пре- и пост-перехватчик при выполнении методов общедоступного наблюдателя.
Я уже пробовал следующий подход безрезультатно:
SomeModel::observe(new ObserverWithHooks(MyActualObserver::class));
где ObserverWithHooks содержит:
public function __construct($observer) {
$this->observer = app($observer);
}
public function created($model) {
if( method_exists($this->observer, 'created') ) {
// .... some pre actions
$this->observer->created($model);
// .... some post actions
}
}
Однако я получаю исключение
Unresolvable dependency resolving [Parameter #0 [ <required> $observer ]] in class ObserverWithHooks
поскольку по какой-то причине события модели не отправляются в предоставленный мной экземпляр ObserverWithHooks, но приложение пытается разрешить класс ObserverWithHooks из контейнера IoC.
У кого-нибудь есть лучшая/рабочая идея, которую я могу позаимствовать?
Проверьте, можете ли вы найти что-нибудь полезное здесь.