Magento 2 - создание программного инвойса-PDF останавливается после второго цикла - PullRequest
0 голосов
/ 23 октября 2018

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

В моей функции выполнения моего Контроллера у меня есть цикл foreach, повторяющийся по моему результату из БД, например,

foreach($result as $row) {
    $this->writeXml($row['document_increment']);
    $this->writePdf($row['document_id'], $row['document_increment']);
}

, который вызывает этидве функции

    public function writeXml($document_increment){
       $content =  $this->buildXml();
       $myfile = fopen('/var/www/magento2/var/folder/_' . $document_increment. '.xml', "w");
       fwrite($myfile, $content);
       fclose($myfile);
    }

    public function writePdf($document_id, $document_increment){
       $invoice = $this->invoiceRepository->get($document_id);
       $pdf = $this->invoicePdfGeneratorService->execute($invoice);
       $this->fileFactory->create(
            '_' . $document_increment. '.pdf',
            $pdf->render(),
            \Magento\Framework\App\Filesystem\DirectoryList::VAR_ELO ,
            'application/pdf'
        );
    }

Я полностью осознаю, что часть этого кода вообще не является лучшей практикой Magento 2, но это скорее "мы можем это сделать вообще?"ситуация.

Теперь я настроил ajax-запрос для вызова моего контроллера вручную, чтобы протестировать его из бэкэнда.Когда я это делаю, Magento генерирует два файла PDF с инвойсом и два файла XML с инвойсом, а затем останавливается без каких-либо ошибок, предупреждений или чего-либо подобного.Я сузил его до функции writePdf().Удаление этого приводит к 5 (LIMIT в Query) XML-файлам, как и предполагалось.

Я уже исключил обычное

  • время выполнения в php.ini
  • неверный результат / ошибка MySQL в запросе (так как он отлично работает с XML)

и проверил все журналы, но нет ни исключения / ошибки / чего-либо, ни какой-либо конфигурации, которую я считал ответственной.

Я думаю, что это действительно странно, так как он прерывается после второго цикла.У кого-нибудь есть идеи, что может вызвать это?Я очень благодарен за каждую подсказку.

EDIT

Я изменил триггерное действие с вызова ajax на задание cron.Все становится еще страннее: теперь все работает, cron сохраняет все файлы PDF и XML.Может кто-нибудь объяснить мне / кто-то есть идеи, почему?

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