Установка NextPDF для CodeIgniter 4
Краткий обзор
Заголовок раздела «Краткий обзор»Установите пакет через Composer. CodeIgniter 4 автоматически находит класс Services и вспомогательные функции, поэтому регистрировать их вручную не нужно.
Требования
Заголовок раздела «Требования»Файл composer.json пакета — достоверный источник этих ограничений. В таблице они продублированы для быстрого ознакомления.
| Зависимость | Ограничение | Примечания |
|---|---|---|
| PHP | >=8.4 <9.0 | Рассчитан на PHP 8.4. |
nextpdf/core | ^3.0 || ^5.2 | Движок NextPDF. |
codeigniter4/framework | ^4.6 | Проверено с CodeIgniter 4.7.0. |
ext-mbstring | требуется во время выполнения | Проверяется один раз для каждого процесса. |
ext-zlib | требуется во время выполнения | Проверяется один раз для каждого процесса. |
Необязательные пакеты, объявленные в разделе suggest, добавляют следующие возможности:
| Пакет | Добавляет |
|---|---|
nextpdf/artisan | Обработчик HTML на базе Chrome DevTools Protocol (CDP), который автоматически обнаруживается при сборке документа. |
nextpdf/premium | Возможности NextPDF Pro и Enterprise: подписание, PDF/A, Factur-X. |
codeigniter4/queue | Асинхронная генерация PDF с помощью GeneratePdfJob. |
Установка
Заголовок раздела «Установка»Установите пакет через Composer:
composer require nextpdf/codeigniterComposer разрешает nextpdf/core и codeigniter4/framework в соответствии с приведёнными выше ограничениями. Редактировать поставщик служб, бандл или файл начальной загрузки не требуется.
Как работает обнаружение
Заголовок раздела «Как работает обнаружение»CodeIgniter 4 сканирует пакеты Composer на наличие элементов фреймворка, когда Config\Modules::$discoverInComposer имеет значение true; для фреймворка это значение по умолчанию. Пакет включает класс NextPDF\CodeIgniter\Config\Services. Этот класс находится в пространстве имён PHP Standard Recommendation 4 (PSR-4) NextPDF\CodeIgniter\, сопоставленном с src/CodeIgniter/. Автозагрузчик PSR-4 в Composer преобразует полное имя класса в путь к файлу. Пространство имён верхнего уровня обязательно (PSR-4 §x1.x2.p5, модальный глагол MUST). Префикс пространства имён сопоставляется с базовым каталогом, поэтому класс разрешается в собственный файл (PSR-4 §x1.x3).
Запись files в автозагрузке Composer для пакета (src/CodeIgniter/Helpers/pdf_helper.php) регистрирует две вспомогательные функции — pdf() и pdf_document(). Registrar пакета также сообщает загрузчику помощников CodeIgniter о помощнике pdf. Полную последовательность см. в /integrations/codeigniter/boot-and-discovery/.
Проверка установки
Заголовок раздела «Проверка установки»Убедитесь, что Composer разрешил пакет:
composer show nextpdf/codeigniterУбедитесь, что CodeIgniter обнаружил класс Services. В любом контроллере или коротком маршруте php spark вызовите службу и проверьте её тип:
<?php
declare(strict_types=1);
use NextPDF\CodeIgniter\Config\Services;use NextPDF\Core\Document;
$document = Services::pdfDocument(false);
// $document is a fresh NextPDF\Core\Document instance.\assert($document instanceof Document);Если Services::pdfDocument() возвращает Document, обнаружение работает. Если возвращается null, обнаружение не сработало. См. /integrations/codeigniter/troubleshooting/.
Граничные случаи и подводные камни
Заголовок раздела «Граничные случаи и подводные камни»- Если основное приложение задаёт для
Config\Modules::$discoverInComposerзначениеfalse, добавьтеnextpdf/codeigniterв список$composerPackages['only']. Иначе CodeIgniter пропустит пакет. - Устаревший автозагрузчик Composer может скрывать класс Services. После обновления выполните
composer dump-autoload. - Пакет объявляет
codeigniter4/queueтолько как зависимость для разработки. Рабочее приложение, отправляющееGeneratePdfJob, должно требоватьcodeigniter4/queueнапрямую.
Замечания по безопасности
Заголовок раздела «Замечания по безопасности»Устанавливайте из Packagist по HTTPS. Фиксируйте разрешённые версии в composer.lock. Пакет не добавляет скрипты, выполняемые во время установки. См. /integrations/codeigniter/security-and-operations/.
Соответствие
Заголовок раздела «Соответствие»- Обнаружение через Composer зависит от автозагрузки PSR-4.
См. также
Заголовок раздела «См. также»- /integrations/codeigniter/overview/ — возможности пакета.
- /integrations/codeigniter/quickstart/ — создание первого PDF в контроллере.
- /integrations/codeigniter/configuration/ — ключи конфигурации и переопределения.
- /integrations/codeigniter/boot-and-discovery/ — подробная последовательность обнаружения.