@CenterJoin

Вызвать commandBus один раз?

Как сделать, чтобы commandBus вызвался после цикла один раз, а не при каждой интерации?
foreach ($dCampaigns as $dCampaign) {
            $search = $dCampaign->getSearch();
            $groupId = $this->userRepository->findById($dCampaign->getUserId())->getGroupId();
            $contactCollection = $this->contactRepository->findByTagIds(false, false, $search, $groupId);

            if (null !== $contactCollection) {
                for ($i = 0; $i < count($contactCollection); $i++) {
                    if (null === $contactCollection[$i]->getEmail()) continue;

                    $command->subject = $dCampaign->getSubject();
                    $command->body = $dCampaign->getContent();
                    $command->contact = $contactCollection[$i];
                    $command->userEmail = $dCampaign->getSenderEmail();
                    $command->campaignId = $dCampaign->getIdValue();
                    $command->replyToEmail = $dCampaign->getReplyToEmail();

                    $this->commandBus->handle($command);
                }
            }
        }
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
Maksclub
@Maksclub
maksfedorov.ru
Сделайте команду, в которой будет пачка других команд
И сделайте лисенер, который сможет ее обработать

И тогда один раз: в цикле мини-команды собираете в пачку-команду, после хэндлите
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы