Ga naar inhoud

Het NextPDF Laravel-pakket installeren

Installeer nextpdf/laravel met Composer. De Laravel-auto-discovery registreert de service provider voor u. Publiceer het configuratiebestand wanneer u het wilt aanpassen. Het pakket detecteert optionele NextPDF-extensies automatisch.

Terminal window
composer require nextpdf/laravel

Het pakket declareert de volgende constraints in zijn composer.json:

VereisteBeperking
PHP>=8.4 <9.0
laravel/framework^12.0
nextpdf/core^3.0 || ^5.2
psr/http-client^1.0

Het pakket wordt automatisch geladen via één PHP Standard Recommendation 4 (PSR-4)-map. Het voorvoegsel NextPDF\Laravel\ wordt gekoppeld aan src/Laravel/. Dit volgt de PSR-4-regel voor de koppeling tussen voorvoegsel en basismap (PSR-4 §3).

Nadat u composer require hebt uitgevoerd, leest de package auto-discovery van Laravel het blok extra.laravel in de composer.json van dit pakket. Vervolgens registreert Laravel de provider en de facade-alias voor u, zodat u config/app.php niet handmatig hoeft te bewerken. Het blok ziet er als volgt uit:

resource: composer.json (extra.laravel)
{
"extra": {
"laravel": {
"providers": [
"NextPDF\\Laravel\\NextPdfServiceProvider"
],
"aliases": {
"Pdf": "NextPDF\\Laravel\\Facades\\Pdf"
}
}
}
}

De pakketdocumentatie van Laravel licht dit gedrag toe. De array extra.laravel.providers registreert service providers automatisch en de array extra.laravel.aliases registreert facade-aliassen automatisch (Laravel 12 package development guide, https://laravel.com/docs/12.x/packages, geraadpleegd op 2026-05-18).

Gebruik de tag nextpdf-config om het configuratiebestand te publiceren. Deze tagnaam is gedefinieerd in NextPdfServiceProvider::boot().

Terminal window
php artisan vendor:publish --tag=nextpdf-config

Dit schrijft config/nextpdf.php naar uw applicatie. Tijdens register() voegt de provider ook de standaardconfiguratie van het pakket samen onder de sleutel nextpdf, zodat het pakket al werkt voordat u publiceert. Door te publiceren wordt het bestand bewerkbaar in uw applicatie.

Bevestig dat Laravel de provider heeft gedetecteerd:

Terminal window
php artisan package:discover --ansi

Zet de constraint vast voor reproduceerbare deployments. Schakel discovery alleen expliciet uit als u de provider zelf registreert:

resource: opt-out pattern (Laravel 12 packages guide)
{
"extra": {
"laravel": {
"dont-discover": [
"nextpdf/laravel"
]
}
}
}

Wanneer discovery is uitgeschakeld, registreert u de provider zelf in bootstrap/providers.php:

resource: bootstrap/providers.php (manual registration)
<?php
declare(strict_types=1);
return [
App\Providers\AppServiceProvider::class,
NextPDF\Laravel\NextPdfServiceProvider::class,
];

Het pakket vermeldt optionele aanvullende pakketten onder suggest in zijn composer.json. Het detecteert geïnstalleerde aanvullende pakketten tijdens runtime:

PakketEffect bij installatieDetectiepunt
nextpdf/artisanDe configuratie van de Chrome DevTools Protocol (CDP) Hypertext Markup Language (HTML)-renderer wordt toegepast op de document-binding wanneer er een Chrome factory-klasse aanwezig isNextPdfServiceProvider::register() controleert op de Chrome browser-factory-klasse
nextpdf/premiumDe bestaande container-sleutels verwijzen naar de concrete implementaties voor PDF Advanced Electronic Signatures (PAdES B-B)-ondertekening, PDF/A-archivering en e-factuurcontractenlazy herleid bij de eerste container-resolutie

Installeer een extensie op dezelfde manier:

Terminal window
composer require nextpdf/artisan

Verdere koppeling is niet nodig. De provider detecteert de extensie tijdens de volgende registratiecyclus.

  • Publiceren is idempotent. Het overschrijft geen bestaande config/nextpdf.php. Voeg --force toe wanneer u het bestand bewust wilt overschrijven.
  • De provider is uitgesteld, dus een geslaagde php artisan package:discover is voldoende om het pakket te bevestigen. De bindings zelf verschijnen pas bij de eerste resolutie.
  • Het pakket ondersteunt nextpdf/core op zowel de ^3.0- als de ^5.2-hoofdlijn. Stem de core-constraint af op de lijn die uw applicatie vastzet. Het Laravel-adapteroppervlak is op beide hetzelfde.
  • De README-badge en composer.json komen overeen op Apache-2.0. Het pakket is opnieuw gelicentieerd vanaf LGPL-3.0-or-later. Versies die vóór de migratie zijn getagd, blijven onder de voorgaande licentie (zie CHANGELOG.md).

Het resolven van nextpdf/core bepaalt grotendeels de kosten van composer require. Het registreren van de provider voegt geen meetbare bootkosten toe, omdat alle bindings uitgestelde closures zijn. Zie /integrations/laravel/boot-and-discovery/ voor de constructiekosten bij de eerste resolutie.

Installeer vanuit het canonieke Packagist-pakket nextpdf/laravel. Het pakket bevat Software Package Data Exchange (SPDX) REUSE-headers en een Apache-2.0 NOTICE-bestand. Zet de constraint vast in composer.json en commit composer.lock, zodat gedeployede workers de geverifieerde dependency-boom resolven.

BeweringBronClausulereference_id
PSR-4-voorvoegsel wordt toegewezen aan basismapPSR-4 Autoloader§3

De namen van de Laravel auto-discovery-sleutels zijn geverifieerd aan de hand van de officiële Laravel 12-documentatie over pakketontwikkeling (https://laravel.com/docs/12.x/packages, geraadpleegd op 2026-05-18).

nextpdf/premium voegt concrete implementaties voor ondertekening, PDF/A en e-facturen toe als optionele Enterprise-functionaliteit. U kunt het gebruiken zonder het hier gedocumenteerde Core-pakket te wijzigen. Zie https://nextpdf.dev/get-license/?intent=laravel-signing.

  • /integrations/laravel/overview/ — pakketarchitectuur en bindingstabel
  • /integrations/laravel/quickstart/ — eerste uitvoerbare controller
  • /integrations/laravel/configuration/ — elke configuratiesleutel uitgelegd
  • /integrations/laravel/boot-and-discovery/ — interne werking van discovery en levensduur van bindings