Интеграция NextPDF Artisan
nextpdf/artisan — библиотека, а не плагин фреймворка. Для интеграции установите пакет, подключите ChromeRendererConfig к документу NextPDF и вызовите writeHtmlChrome(). Эта страница поможет найти сопутствующую документацию по Artisan.
Установка
Заголовок раздела «Установка»composer require nextpdf/artisanПолную матрицу требований и сведения о Chrome как внешней зависимости см. в разделе /integrations/artisan/install/.
Загрузка и обнаружение
Заголовок раздела «Загрузка и обнаружение»Artisan не поставляется ни с сервис-провайдером, ни с бандлом, ни с манифестом автообнаружения для фреймворка. Это обычная библиотека по стандарту PHP Standard Recommendation 4 (PSR-4) (NextPDF\Artisan\, NextPDF\Parser\), которую вы используете напрямую. Обнаруживать нечего. Точка входа — метод writeHtmlChrome(): nextpdf/core предоставляет его в Document, как только классы моста становятся доступны для автозагрузки. Модель обнаружения и начальной загрузки описана в разделе /integrations/artisan/boot-and-discovery/.
Привязки в контейнере
Заголовок раздела «Привязки в контейнере»Публиковать интеграцию для контейнера не нужно. В окружениях без контейнера внедрения зависимостей EInvoiceServiceFactory предоставляет статические фабричные методы (makeEmbedder, makeValidator, makeDefaultProfile, makeSchematronRunner). Эти методы возвращают реализации контрактов электронных счетов Premium либо null, если уровень Premium не установлен. Это соответствует поведению пакетов-обёрток для фреймворков, которые возвращают null, поэтому код без контейнера работает с тем же интерфейсом. Подробности и обоснование см. в разделе /integrations/artisan/boot-and-discovery/.
Точки входа публичного API
Заголовок раздела «Точки входа публичного API»| Точка входа | Где | Описано в |
|---|---|---|
Document::writeHtmlChrome() (метод ядра) | nextpdf/core | /integrations/artisan/quickstart/ — быстрый старт |
Document::setChromeRendererConfig() (метод ядра) | nextpdf/core | /integrations/artisan/quickstart/ — быстрый старт |
ChromeHtmlRenderer::render() | nextpdf/artisan | /integrations/artisan/production-usage/ — использование в продакшене |
ChromeRendererConfig / ::fromArray() | nextpdf/artisan | /integrations/artisan/configuration/ — конфигурация |
EInvoiceServiceFactory::make*() | nextpdf/artisan | /integrations/artisan/boot-and-discovery/ — загрузка и обнаружение |
Сигнатура writeHtmlChrome() — (string $html, ?float $width = null, ?float $height = null): static; это подтверждено в nextpdf/coresrc/Core/Concerns/HasTextOutput.php.
Дымовой тест
Заголовок раздела «Дымовой тест»<?php
declare(strict_types=1);
use NextPDF\Artisan\ChromeHtmlRenderer;use NextPDF\Artisan\ChromeRendererConfig;
require __DIR__ . '/vendor/autoload.php';
$renderer = new ChromeHtmlRenderer(new ChromeRendererConfig());assert($renderer->getHtmlSecurityPolicy()->getName() === 'default');echo "ARTISAN_WIRED\n";Это подтверждает, что автозагрузка и привязки контрактов nextpdf/core разрешаются без запуска Chrome (поведение проверяется тестом tests/Unit/Artisan/ChromeHtmlRendererTest.php::usesDefaultHtmlSecurityPolicyWhenNoneInjected). Сквозной дымовой тест отрисовки с запуском Chrome см. в разделе /integrations/artisan/chrome-renderer-setup/.
Что дальше
Заголовок раздела «Что дальше»- Отрисуйте свой первый документ: /integrations/artisan/quickstart/
- Все параметры конфигурации: /integrations/artisan/configuration/
- Подготовка Chrome / контейнеров: /integrations/artisan/chrome-renderer-setup/
- Модель транспорта и изоляции: /integrations/artisan/security-and-operations/
- Подключение в продакшене и пакетные обработчики: /integrations/artisan/production-usage/
- Диагностика сбоя: /integrations/artisan/troubleshooting/
- Как загружается пакет: /integrations/artisan/boot-and-discovery/
Коммерческий контекст
Заголовок раздела «Коммерческий контекст»Этот мост — полностью работоспособное программное обеспечение с открытым исходным кодом. Уровни Premium добавляют встраивание электронных счетов (Pro) и их проверку (Enterprise) поверх отрисованного файла в формате Portable Document Format (PDF). Если они отсутствуют, EInvoiceServiceFactory возвращает null, поэтому код интеграции можно написать один раз и запускать как с Premium, так и без него.
См. также
Заголовок раздела «См. также»- /integrations/artisan/overview/ — обзор
- /integrations/artisan/install/ — установка
- /integrations/artisan/boot-and-discovery/ — загрузка и обнаружение
- /integrations/artisan/quickstart/ — быстрый старт