Instalacja NextPDF dla CodeIgniter 4
W skrócie
Dział zatytułowany „W skrócie”Zainstaluj pakiet przy użyciu Composera. CodeIgniter 4 automatycznie odnajduje klasę Services oraz funkcje pomocnicze, więc nie trzeba rejestrować ich ręcznie.
Wymagania
Dział zatytułowany „Wymagania”Plik composer.json pakietu jest miarodajnym źródłem tych ograniczeń. Poniższa tabela podaje je w skrócie.
| Zależność | Ograniczenie | Uwagi |
|---|---|---|
| PHP | >=8.4 <9.0 | Wymaga PHP 8.4. |
nextpdf/core | ^3.0 || ^5.2 | Silnik NextPDF. |
codeigniter4/framework | ^4.6 | Zweryfikowano z CodeIgniter 4.7.0. |
ext-mbstring | wymagane w czasie wykonywania | Sprawdzane raz na proces. |
ext-zlib | wymagane w czasie wykonywania | Sprawdzane raz na proces. |
Opcjonalne pakiety zadeklarowane w sekcji suggest dodają następujące funkcje:
| Pakiet | Dodaje |
|---|---|
nextpdf/artisan | renderer HTML oparty na Chrome DevTools Protocol (CDP), automatycznie wykrywany podczas budowania dokumentu. |
nextpdf/premium | Funkcje NextPDF Pro i Enterprise: podpisywanie, PDF/A i Factur-X. |
codeigniter4/queue | Asynchroniczne generowanie PDF przy użyciu GeneratePdfJob. |
Instalacja
Dział zatytułowany „Instalacja”Zainstaluj pakiet przy użyciu Composera:
composer require nextpdf/codeigniterComposer rozwiązuje nextpdf/core i codeigniter4/framework zgodnie z powyższymi ograniczeniami. Nie trzeba edytować service providera, pakietu (bundle) ani pliku startowego (bootstrap).
Jak działa wykrywanie
Dział zatytułowany „Jak działa wykrywanie”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ę.
Weryfikacja instalacji
Dział zatytułowany „Weryfikacja instalacji”Sprawdź, czy Composer rozwiązał pakiet:
composer show nextpdf/codeigniterSprawdź, 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/.
Przypadki brzegowe i pułapki
Dział zatytułowany „Przypadki brzegowe i pułapki”- Jeśli aplikacja hostująca ustawia
Config\Modules::$discoverInComposernafalse, dodajnextpdf/codeigniterdo 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/queuewyłącznie jako zależność deweloperską. Aplikacja produkcyjna, która wysyłaGeneratePdfJob, musi bezpośrednio zadeklarować wymaganie dlacodeigniter4/queue.
Uwagi dotyczące bezpieczeństwa
Dział zatytułowany „Uwagi dotyczące bezpieczeństwa”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/.
Zgodność
Dział zatytułowany „Zgodność”- Wykrywanie przez Composer zależy od autoloadingu PSR-4.
Zobacz także
Dział zatytułowany „Zobacz także”- /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.