CodeIgniter API-referentie
In het kort
Sectie met titel “In het kort”Het CodeIgniter-pakket biedt een kleine, op controllers gerichte application programming interface (API). Het bevat een Pdf-bibliotheekwrapper voor één document (Services::pdf() en de globale helper pdf()), responshelpers (PdfResponse) die een opgebouwd document omzetten in een DownloadResponse, de onderliggende Services-factory’s (lettertype- en afbeeldingsregisters, de documentfactory en een optionele signer en time-stamping authority (TSA)-client), de configuratieklasse NextPdf en GeneratePdfJob voor asynchrone generatie op basis van statische builder-callables.
Begin bij het belangrijkste controllerpad: roep Services::pdf() aan (of de helper pdf()), voeg inhoud toe aan $pdf->document() en retourneer $pdf->download('file.pdf'). Dat pad dekt het meest voorkomende geval. De referentietabellen zijn geordend per onderdeel; in Veelvoorkomende taken staan de uitvoerbare vormen voorop.
Veelvoorkomende taken
Sectie met titel “Veelvoorkomende taken”Dit zijn de meest voorkomende productieflows. Elk voorbeeld is geverifieerd aan de hand van de broncode van nextpdf/codeigniter.
Gebruik het canonieke renderpad om vanuit een controller een downloadbaar Portable Document Format (PDF)-bestand te retourneren:
<?php
declare(strict_types=1);
namespace App\Controllers;
use CodeIgniter\HTTP\DownloadResponse;use NextPDF\CodeIgniter\Config\Services;
final class InvoiceController extends BaseController{ public function download(int $id): DownloadResponse { $pdf = Services::pdf(); $pdf->document()->addPage(); $pdf->document()->cell(0, 10, "Invoice #{$id}");
return $pdf->download("invoice-{$id}.pdf"); }}Wat het doet: het maakt een nieuwe Pdf rond een nieuw Document, schrijft één cel en retourneert een DownloadResponse met een attachment-dispositie en de beveiligingsheaders van het pakket.
Bekijk een PDF inline in de browser met dezelfde wrapper en inline() in plaats van download():
<?php
declare(strict_types=1);
namespace App\Controllers;
use CodeIgniter\HTTP\DownloadResponse;
final class ReportController extends BaseController{ public function preview(): DownloadResponse { $pdf = pdf(); $pdf->document()->addPage(); $pdf->document()->cell(0, 10, 'Monthly Report');
return $pdf->inline('report.pdf'); }}Wat het doet: het gebruikt de globale helper pdf() (gelijk aan Services::pdf()) en retourneert een DownloadResponse met een inline-dispositie, zodat de browser de PDF weergeeft in plaats van deze te downloaden.
Genereer een PDF asynchroon via de queue met GeneratePdfJob en een statische builder:
<?php
declare(strict_types=1);
use NextPDF\CodeIgniter\Jobs\GeneratePdfJob;
service('queue')->push('pdf', GeneratePdfJob::class, [ 'builder' => 'App\PdfBuilders\InvoiceBuilder::build', 'outputPath' => WRITEPATH . 'pdfs/invoice-42.pdf', 'context' => ['invoice_id' => 42],]);Wat het doet: het plaatst de generatie in de queue. De worker valideert de builder (moet een statische callable App\PdfBuilders\...::method zijn) en het uitvoerpad (moet binnen WRITEPATH/pdfs/ blijven en eindigen op .pdf), bouwt een nieuw document op en slaat het op.
Bibliotheekwrapper
Sectie met titel “Bibliotheekwrapper”Gebruik deze tabel wanneer je een Pdf-wrapper hebt en de respons- of opslagmethoden daarvan nodig hebt.
| Symbool | Parameters | Standaardgedrag | Retourneert | Gooit of faalt met | Opmerkingen |
|---|---|---|---|---|---|
NextPDF\CodeIgniter\Libraries\Pdf / new Pdf(Document $document) | document: nieuw core-document. | Wrapt het opgegeven document voor één respons- of opslagbewerking. | Pdf | Geen verwacht. | Hergebruik de wrapper niet na uitvoer. |
Pdf::document() | geen. | Retourneert het gewrapte document. | NextPDF\Core\Document | Geen verwacht. | Gebruik dit om de core-authoring-API’s aan te roepen. |
Pdf::inline(string $filename = 'document.pdf') | filename: bestandsnaam van de respons. | Gebruikt de inline-dispositie van de browser. | CodeIgniter\HTTP\DownloadResponse | Core-serialisatiefouten. | Delegeert naar PdfResponse::inline(). |
Pdf::download(string $filename = 'document.pdf') | filename: bestandsnaam van de respons. | Gebruikt de attachment-dispositie van de browser. | DownloadResponse | Core-serialisatiefouten. | Delegeert naar PdfResponse::download(). |
Pdf::streamInline(string $filename = 'document.pdf') | filename: bestandsnaam van de respons. | Biedt API-pariteit met andere framework-pakketten. | DownloadResponse | Core-serialisatiefouten. | CodeIgniter verwerkt binaire uitvoer rechtstreeks. |
Pdf::streamDownload(string $filename = 'document.pdf') | filename: bestandsnaam van de respons. | Biedt API-pariteit met andere framework-pakketten. | DownloadResponse | Core-serialisatiefouten. | Gebruik dezelfde opties voor groottebeheer als bij niet-gestreamde responses. |
Pdf::save(string $path) | path: doelpad in het bestandssysteem. | Schrijft het gewrapte document weg. | void | Bestandssysteem- of core-schrijffouten. | Valideer de opslagroots vóór het opslaan. |
Services en helpers
Sectie met titel “Services en helpers”Gebruik deze tabel wanneer je een specifieke servicefactory of globale helperfunctie nodig hebt, inclusief het shared-gedrag en het retourtype daarvan.
| Symbool | Parameters | Standaardgedrag | Retourneert | Gooit of faalt met | Opmerkingen |
|---|---|---|---|---|---|
Services::fontRegistry(bool $getShared = true) | getShared: CodeIgniter shared-service-vlag. | Retourneert een gedeeld register, warmt het op met de geconfigureerde lettertypen en vergrendelt het vervolgens. | FontRegistryInterface | RuntimeException bij ontbrekende extensies of een onveilig lettertypepad. | Weigert stream wrappers en null bytes in fontsPath. |
Services::imageRegistry(bool $getShared = true) | getShared: shared-service-vlag. | Retourneert een gedeeld afbeeldingsregister met begrensde least recently used (LRU)-cache. | ImageRegistry | Geen verwacht. | De cachegrootte wordt bepaald door imageCacheMb. |
Services::documentFactory(bool $getShared = true) | getShared: shared-service-vlag. | Retourneert een gedeelde factory die gedeelde registers gebruikt. | DocumentFactoryInterface | Fouten bij het opzetten van het register. | De factory is herbruikbaar; documenten zijn dat niet. |
Services::tsaClient(bool $getShared = true) | getShared: shared-service-vlag. | Retourneert null wanneer tsa.url leeg is. | `TsaClient | null` | Hypertext Transfer Protocol (HTTP)-client- of TSA-configuratiefouten. |
Services::pdfSigner(bool $getShared = false) | getShared: shared-service-vlag. | Retourneert null wanneer ondertekenen is uitgeschakeld. | `SignerInterface | null` | Certificaatfouten of fouten in het handtekeningniveau. |
Services::pdfDocument(bool $getShared = false) | getShared: shared-service-vlag. | Maakt een nieuw document, past de standaardwaarden toe en configureert optioneel PDF/A of Artisan. | Document | Optionele extensie- of documentconfiguratiefouten. | Houd de standaardwaarde false aan voor veiligheid op requestniveau. |
Services::pdf(bool $getShared = false) | getShared: shared-service-vlag. | Maakt een nieuwe Pdf-wrapper rond een nieuw document. | NextPDF\CodeIgniter\Libraries\Pdf | Fouten bij het opzetten van het document. | Belangrijkste op controllers gerichte service. |
Services::eInvoiceEmbedder() | geen. | Retourneert null, tenzij de Premium Pro e-invoice-embedderklasse bestaat. | `EmbedderInterface | null` | Constructiefouten in het optionele pakket. |
Services::eInvoiceValidator() | geen. | Retourneert null, tenzij de Premium Enterprise-validatorklasse bestaat. | `ValidatorInterface | null` | Constructiefouten in het optionele pakket. |
Services::eInvoiceProfile() | geen. | Retourneert het EN16931-profiel wanneer Premium Pro is geïnstalleerd. | `ProfileInterface | null` | Fouten in het optionele pakket. |
Services::schematronRunner() | geen. | Retourneert null, tenzij de Premium Enterprise Schematron-validator bestaat. | `SchematronRunnerInterface | null` | Constructiefouten in het optionele pakket. |
Registrar::Autoload() | geen. | Voegt de pakkethelper toe aan de CodeIgniter-autoloadconfiguratie. | array | Geen verwacht. | Schakelt pdf() en pdf_document() in wanneer de module is geladen. |
pdf() | geen. | Roept Services::pdf(false) aan. | Pdf | Fouten bij het opzetten van het document. | Gemakshelper voor controllers. |
pdf_document() | geen. | Roept Services::pdfDocument(false) aan. | Document | Fouten bij het opzetten van het document. | Gemakshelper wanneer de core-document-API de voorkeur heeft. |
HTTP-responses
Sectie met titel “HTTP-responses”Gebruik deze tabel wanneer je al een Document hebt opgebouwd en de DownloadResponse zelf wilt opbouwen in plaats van de Pdf-wrapper te gebruiken.
| Symbool | Parameters | Standaardgedrag | Retourneert | Gooit of faalt met | Opmerkingen |
|---|---|---|---|---|---|
PdfResponse::inline(Document $document, string $filename = 'document.pdf') | document: opgebouwd document; filename: bestandsnaam van de respons. | Zorgt dat de extensie .pdf aanwezig is en gebruikt de inline-dispositie. | DownloadResponse | Core-serialisatiefouten. | Voegt het PDF-contenttype en defensieve headers toe. |
PdfResponse::download(Document $document, string $filename = 'document.pdf') | Hetzelfde als inline; de dispositie is attachment. | Zorgt voor de extensie .pdf. | DownloadResponse | Hetzelfde als inline. | Gebruik dit voor browserdownloads. |
PdfResponse::streamInline(Document $document, string $filename = 'document.pdf') | Hetzelfde als inline. | Hetzelfde gedrag als inline in CodeIgniter 4 (CI4). | DownloadResponse | Hetzelfde als inline. | Bestaat voor API-pariteit tussen frameworks. |
PdfResponse::streamDownload(Document $document, string $filename = 'document.pdf') | Hetzelfde als download. | Hetzelfde gedrag als download in CI4. | DownloadResponse | Hetzelfde als download. | Bestaat voor API-pariteit tussen frameworks. |
Queue-job
Sectie met titel “Queue-job”Gebruik deze tabel wanneer je asynchrone generatie inricht en de exacte jobdata-sleutels en het builder-callable-contract nodig hebt.
| Symbool | Parameters | Standaardgedrag | Retourneert | Gooit of faalt met | Opmerkingen |
|---|---|---|---|---|---|
GeneratePdfJob::process() | Jobdata-sleutels: builder, outputPath en de optionele context. | Gebruikt een lege context-array als die wordt weggelaten. | void | InvalidArgumentException bij een onveilige builder of een onveilig uitvoerpad; core-schrijffouten. | De builder moet App\PdfBuilders\...\*::method zijn. |
| Builder-callable | Document $doc, array $context. | Geen standaardcontext naast de jobdata. | Document | Builder-specifieke excepties. | Vereist een statische callable, omdat CI4-queue-payloads geserialiseerde data zijn. |
Configuratie
Sectie met titel “Configuratie”Gebruik deze tabel wanneer je standaardwaarden wijzigt voor paginaformaat, paden, ondertekening, TSA of documentmetadata in de configuratieklasse NextPdf.
| Eigenschap | Type | Standaardgedrag | Opmerkingen |
|---|---|---|---|
pageFormat | string | A4. | Stelt het standaardpaginaformaat in. |
orientation | string | P. | Stelt de standaardoriëntatie in. |
unit | string | mm. | Stelt de standaardeenheid in. |
pdfa | `string | null` | null. |
fontsPath / cachePath | string | WRITEPATH . 'fonts' en WRITEPATH . 'cache/nextpdf'. | Houd paden binnen de door de applicatie beheerde opslag. |
signature | array | Uitgeschakeld met niveau B-B. | Certificaat, sleutel, wachtwoord, extra certificaten en niveau. |
tsa | array | Uitgeschakeld wanneer de Uniform Resource Locator (URL) null is; time-out van 30 seconden. | Inloggegevens, mutual Transport Layer Security (mTLS)-bestanden, public-key pins en HTTP-beleid. |
ocspCache | array | Ingeschakeld met een time to live (TTL) van 86400 seconden. | Gebruikt door flows voor handtekeningvalidatie wanneer beschikbaar. |
preloadFonts | list<string> | Leeg. | Wordt opgewarmd voordat het register wordt vergrendeld. |
imageCacheMb | int | 50. | Bepaalt de afbeeldingscache voor de levensduur van het proces. |
fontCacheLocking | bool | true. | Houdt mutaties van het lettertyperegister buiten de afhandeling van requests. |
artisan | array | Chrome-renderer uitgeschakeld, tenzij geconfigureerd en geïnstalleerd. | Wordt toegewezen aan ChromeRendererConfig::fromArray(). |
defaults | array | Maker NextPDF, lege auteurwaarde, taal en, standaardmarges en standaardlettertype. | Services::pdfDocument() past alleen creator, language en (indien niet leeg) author toe; margin_top/right/bottom/left, font_family, font_size, trim_box en bleed_box zijn gedefinieerde standaardwaarden, maar deze worden momenteel niet toegepast. |
Ontwikkelnotities
Sectie met titel “Ontwikkelnotities”GeneratePdfJobbeperkt de uitvoer totWRITEPATH . 'pdfs'en vereist.pdf.- Builder-callables buiten
App\PdfBuildersworden geweigerd om willekeurige code-uitvoering vanuit gewijzigde queue-payloads te voorkomen. - Gebruik
service('pdf')of de pakkethelper voor controllerflows; gebruik queue-jobs voor langlopende generatie.