Пре- и пост-хуки для методов Observer

avatar
Yasen Slavov
1 июля 2021 в 18:32
18
0
0

Мне нужно выполнять действия до и после каждого метода события внутри каждого из моих наблюдателей. Поскольку наблюдателей много, а действия, которые мне нужно выполнить, одинаковы, я ищу способ активировать пре- и пост-перехватчик при выполнении методов общедоступного наблюдателя.

Я уже пробовал следующий подход безрезультатно:

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.

У кого-нибудь есть лучшая/рабочая идея, которую я могу позаимствовать?

Источник
Tpojka
1 июля 2021 в 21:24
0

Проверьте, можете ли вы найти что-нибудь полезное здесь.

Ответы (0)