Перейти к содержимому

Установка 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/codeigniter

Composer разрешает 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/ — подробная последовательность обнаружения.