Пакет CodeIgniter предоставляет фабрики сервисов, вспомогательные функции и небольшую библиотечную обёртку Pdf для одного документа в формате Portable Document Format (PDF). Используйте обёртку в контроллерах. Для очередей используются статические вызываемые построители, поскольку полезная нагрузка очереди CodeIgniter должна состоять из сериализуемых данных.
Используйте это руководство, когда проектируете потоки контроллеров, сервисов, построителей очередей и тестов на основе nextpdf/codeigniter.
Статические построители, безопасные для очереди и принимаемые GeneratePdfJob.
app/Libraries/*
Необязательные обёртки приложения для повторяющихся операций с документами.
app/Services/*
Политика получения и хранения доменных данных.
app/Config/NextPdf.php
Переопределения конфигурации пакета на стороне приложения.
tests/app/PdfBuilders/*
Тесты построителей и полезной нагрузки очереди.
Используйте вспомогательные функции пакета для коротких потоков. Используйте явные вызовы сервисов, когда построение документа относится к классу, который можно тестировать напрямую.
Построители очереди должны быть статическими, детерминированными и располагаться в App\PdfBuilders. Держите массив контекста достаточно простым, чтобы его было легко сериализовать и проверять.
Задание ограничивает вывод настроенным PDF-каталогом приложения. Если вашему приложению нужно хранение для конкретного арендатора, вынесите эту политику в один сервис и протестируйте её перед отправкой задания.
Тесты сервиса проверяют, что каждое разрешение Services::pdf() возвращает независимый документ.
Тесты вспомогательных функций проверяют, что pdf() и pdf_document() возвращают новые объекты.
Тесты ответа проверяют заголовки и нормализацию имени файла.
Тесты очереди охватывают недопустимые строки построителей и небезопасные пути вывода.
Тесты построителей используют репрезентативные данные контекста.
Тесты конфигурации охватывают путь к шрифтам, путь к кэшу, отключённое подписание и отключённые состояния центра отметок времени Time-Stamp Authority (TSA).