Salta ai contenuti

Installare NextPDF per CodeIgniter 4

Installare il pacchetto con Composer. CodeIgniter 4 rileva automaticamente la classe Services e le funzioni helper. Non è richiesta alcuna registrazione manuale.

Il file composer.json del pacchetto dichiara i vincoli seguenti ed è la fonte autorevole. La tabella li riporta invariati.

DipendenzaVincoloNote
PHP>=8.4 <9.0Il pacchetto richiede PHP 8.4.
nextpdf/core^3.0 || ^5.2Il motore NextPDF.
codeigniter4/framework^4.6Verificato con CodeIgniter 4.7.0.
ext-mbstringrichiesta in fase di esecuzioneConvalidata una sola volta per processo.
ext-zlibrichiesta in fase di esecuzioneConvalidata una sola volta per processo.

Pacchetti facoltativi dichiarati in suggest:

PacchettoAggiunge
nextpdf/artisanRenderer HTML Chrome CDP (rilevato automaticamente durante la generazione del documento).
nextpdf/premiumNextPDF Pro ed Enterprise: firma, PDF/A, Factur-X.
codeigniter4/queueGenerazione asincrona di PDF tramite GeneratePdfJob.

Installare il pacchetto:

Terminal window
composer require nextpdf/codeigniter

Composer risolve nextpdf/core e codeigniter4/framework in base ai vincoli indicati sopra. Non è necessario modificare un service provider, un bundle o un file di bootstrap.

CodeIgniter 4 esamina i pacchetti Composer alla ricerca di elementi del framework quando Config\Modules::$discoverInComposer è true, valore predefinito del framework. Il pacchetto include una classe NextPDF\CodeIgniter\Config\Services. La classe si trova nel namespace PSR-4 NextPDF\CodeIgniter\, che corrisponde a src/CodeIgniter/. L’autoloading PSR-4 di Composer converte tale nome di classe completo in un percorso di file. Il namespace di primo livello è obbligatorio (PSR-4 §x1.x2.p5, requisito MUST). Il prefisso del namespace corrisponde alla directory di base, quindi la classe viene risolta nel proprio file (PSR-4 §x1.x3).

Nel pacchetto, la voce di autoload files di Composer (src/CodeIgniter/Helpers/pdf_helper.php) registra le due funzioni helper, pdf() e pdf_document(). Il Registrar del pacchetto segnala inoltre l’helper pdf al caricatore di helper di CodeIgniter. Per la sequenza completa, vedere /integrations/codeigniter/boot-and-discovery/.

Verificare che Composer abbia risolto il pacchetto:

Terminal window
composer show nextpdf/codeigniter

Verificare che CodeIgniter abbia individuato la classe Services. In un controller qualsiasi, oppure in una breve route php spark, chiamare un servizio e verificarne il tipo:

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

Se Services::pdfDocument() restituisce un Document, l’individuazione funziona. Se la chiamata restituisce null, l’individuazione non è stata eseguita. Vedere /integrations/codeigniter/troubleshooting/.

  • Se l’applicazione host imposta Config\Modules::$discoverInComposer su false, aggiungere nextpdf/codeigniter all’elenco $composerPackages['only']. In caso contrario, l’individuazione ignora il pacchetto.
  • Un autoloader di Composer obsoleto può impedire di trovare la classe Services. Eseguire composer dump-autoload dopo l’aggiornamento.
  • Il pacchetto dichiara codeigniter4/queue solo come dipendenza di sviluppo. Un’applicazione di produzione che esegue il dispatch di GeneratePdfJob deve richiedere codeigniter4/queue direttamente.

Installare da Packagist tramite HTTPS. Bloccare le versioni risolte in composer.lock. Il pacchetto non aggiunge script in fase di installazione. Vedere /integrations/codeigniter/security-and-operations/.

  • L’individuazione tramite Composer dipende dall’autoloading PSR-4.
  • /integrations/codeigniter/overview/ — cosa fornisce il pacchetto.
  • /integrations/codeigniter/quickstart/ — il primo PDF in un controller.
  • /integrations/codeigniter/configuration/ — chiavi di configurazione e override.
  • /integrations/codeigniter/boot-and-discovery/ — la sequenza di individuazione in dettaglio.