Обратный ответ в середине службы через прослушиватель событий - PullRequest
0 голосов
/ 12 декабря 2018

Как вернуть Ответ в середине службы через прослушиватель событий?

У меня есть ситуация, когда у меня есть два контроллера, один для интерфейса, другой для API.Оба они используют один и тот же сервис для обработки запроса.В этом сервисе в методе handle у меня есть несколько мест, где я хочу вернуть ответ, прежде чем метод сделает весь код.Я имею в виду, что проверяю некоторые требования, проверяю некоторые вещи и т. Д. Поэтому в этих местах я могу отправить событие, которое будет обрабатывать создание ответа.Таким образом, API получает JSON Response, а Front-end будет отображать представление.Но как вернуть этот ответ?Я могу вернуть Ответ от события Контроллеру следующим образом:

//src/Manager/MyService.php

public function handle(EventDispatcherInterface $eventDispatcher, $input) {
    //...

    $eventDispatcher->dispatch('event.error', $event);

    if (null !== $event->getResponse()) {
        return $event->getResponse();
    }
}

И Контроллер будет выглядеть так:

public function doSomething(MyService $service)
{
    //...
    return $service->handle($input);
}

Это выполнит работу.Но есть ли более быстрый способ?Есть ли возможность сделать что-то вроде этого:

$eventDispatcher->dispatch('event.error', $event);

, который сразу же вернет Response?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...