Symfony kernel.terminate событие запуска команды или службы асинхронно - PullRequest
0 голосов
/ 28 мая 2018

Я хочу выполнить мой сервис на событии kernel.terminate, чтобы сделать это асинхронно.Что я делаю в своем контроллере перед тем, как вернуть ответ:

$this->eventDispatcher->addListener(KernelEvents::TERMINATE, function (PostResponseEvent $event) use ($vat) {
    // Launch the job
    $command = new WebDriverCommand();
    $command->setContainer($this->container);
    $input = new ArrayInput(array('id' => $vat->getId()));
    $output = new NullOutput();
    $command->run($input, $output);

});

Мой вопрос: есть ли разница между , выполняющим команду, которая выполняет мой сервис И Вызов службы напрямую без команды?Заранее спасибо.

1 Ответ

0 голосов
/ 28 мая 2018

Абсолютно без разницы.Ваша команда не должна иметь никакой логики в любом случае.И слушатели событий, и ваши команды должны в любом случае вызывать службу - быть своего рода связующим звеном между платформой и логикой вашего домена.

Ваши классы, в сущности, будут проще для модульного тестирования и поддержки.

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