Przejdź do głównej zawartości

Instalacja NextPDF dla CodeIgniter 4

Zainstaluj pakiet przy użyciu Composera. CodeIgniter 4 automatycznie odnajduje klasę Services oraz funkcje pomocnicze, więc nie trzeba rejestrować ich ręcznie.

Plik composer.json pakietu jest miarodajnym źródłem tych ograniczeń. Poniższa tabela podaje je w skrócie.

ZależnośćOgraniczenieUwagi
PHP>=8.4 <9.0Wymaga PHP 8.4.
nextpdf/core^3.0 || ^5.2Silnik NextPDF.
codeigniter4/framework^4.6Zweryfikowano z CodeIgniter 4.7.0.
ext-mbstringwymagane w czasie wykonywaniaSprawdzane raz na proces.
ext-zlibwymagane w czasie wykonywaniaSprawdzane raz na proces.

Opcjonalne pakiety zadeklarowane w sekcji suggest dodają następujące funkcje:

PakietDodaje
nextpdf/artisanrenderer HTML oparty na Chrome DevTools Protocol (CDP), automatycznie wykrywany podczas budowania dokumentu.
nextpdf/premiumFunkcje NextPDF Pro i Enterprise: podpisywanie, PDF/A i Factur-X.
codeigniter4/queueAsynchroniczne generowanie PDF przy użyciu GeneratePdfJob.

Zainstaluj pakiet przy użyciu Composera:

Okno terminala
composer require nextpdf/codeigniter

Composer rozwiązuje nextpdf/core i codeigniter4/framework zgodnie z powyższymi ograniczeniami. Nie trzeba edytować service providera, pakietu (bundle) ani pliku startowego (bootstrap).

CodeIgniter 4 skanuje pakiety Composera w poszukiwaniu elementów frameworka, gdy Config\Modules::$discoverInComposer ma wartość true; jest to domyślne ustawienie frameworka. Pakiet zawiera klasę NextPDF\CodeIgniter\Config\Services. Ta klasa znajduje się w przestrzeni nazw PHP Standard Recommendation 4 (PSR-4) NextPDF\CodeIgniter\, która jest mapowana na src/CodeIgniter/. Autoloader PSR-4 Composera przekształca w pełni kwalifikowaną nazwę klasy na ścieżkę pliku. Wymagana jest przestrzeń nazw najwyższego poziomu (PSR-4 §x1.x2.p5, modalne MUST). Prefiks przestrzeni nazw jest mapowany na katalog bazowy, dlatego klasa jest rozwiązywana do odpowiadającego jej pliku (PSR-4 §x1.x3).

Wpis autoloadingu Composera files dla pakietu (src/CodeIgniter/Helpers/pdf_helper.php) rejestruje dwie funkcje pomocnicze: pdf() oraz pdf_document(). Klasa Registrar pakietu zgłasza również helper pdf do mechanizmu ładowania helperów w CodeIgniter. Zobacz /integrations/codeigniter/boot-and-discovery/, aby poznać pełną sekwencję.

Sprawdź, czy Composer rozwiązał pakiet:

Okno terminala
composer show nextpdf/codeigniter

Sprawdź, czy CodeIgniter wykrył klasę Services. W dowolnym kontrolerze albo w krótkiej trasie uruchomionej przez php spark wywołaj usługę i sprawdź jej typ:

<?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);

Jeśli Services::pdfDocument() zwraca Document, wykrywanie działa. Jeśli zwraca null, mechanizm wykrywania się nie uruchomił. Zobacz /integrations/codeigniter/troubleshooting/.

  • Jeśli aplikacja hostująca ustawia Config\Modules::$discoverInComposer na false, dodaj nextpdf/codeigniter do listy $composerPackages['only']. W przeciwnym razie CodeIgniter pomija ten pakiet.
  • Nieaktualny autoloader Composera może ukryć klasę Services. Po aktualizacji uruchom composer dump-autoload.
  • Pakiet deklaruje codeigniter4/queue wyłącznie jako zależność deweloperską. Aplikacja produkcyjna, która wysyła GeneratePdfJob, musi bezpośrednio zadeklarować wymaganie dla codeigniter4/queue.

Instaluj z Packagist przez HTTPS. Przypnij rozwiązane wersje w pliku composer.lock. Pakiet nie dodaje żadnych skryptów uruchamianych podczas instalacji. Zobacz /integrations/codeigniter/security-and-operations/.

  • Wykrywanie przez Composer zależy od autoloadingu PSR-4.
  • /integrations/codeigniter/overview/ — możliwości pakietu.
  • /integrations/codeigniter/quickstart/ — utwórz pierwszy PDF w kontrolerze.
  • /integrations/codeigniter/configuration/ — klucze konfiguracji i nadpisania.
  • /integrations/codeigniter/boot-and-discovery/ — szczegółowa sekwencja wykrywania.