twig = $twig; } protected function renderTwigTemplate(InvoiceDocument $document, InvoiceModel $model): string { $language = $model->getTemplate()->getLanguage(); $formatLocale = $model->getFormatter()->getLocale(); $template = '@invoice/' . basename($document->getFilename()); $entries = []; foreach ($model->getCalculator()->getEntries() as $entry) { $entries[] = $model->itemToArray($entry); } $options = [ // model should not be used in the future, but we can likely not remove it 'model' => $model, // new since 1.16.7 - templates should only use the pre-generated values 'invoice' => $model->toArray(), // new since 1.19.5 - templates should only use the pre-generated values 'entries' => $entries ]; return $this->renderTwigTemplateWithLanguage($this->twig, $template, $options, $language, $formatLocale); } }