Zum Inhalt springen

Installation des NextPDF-Laravel-Pakets

Installieren Sie nextpdf/laravel mit Composer. Die Auto-Discovery registriert den Service-Provider für Sie. Veröffentlichen Sie anschließend die Konfigurationsdatei, damit Sie sie bearbeiten können. Das Paket erkennt optionale NextPDF-Erweiterungen selbstständig.

Terminal-Fenster
composer require nextpdf/laravel

Das Paket deklariert in seiner composer.json die folgenden Einschränkungen:

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

Das Paket lädt seine Klassen automatisch über eine einzige PSR-4-Map. Das Präfix NextPDF\Laravel\ wird auf src/Laravel/ aufgelöst. Dies folgt der PSR-4-Regel, nach der ein Präfix auf ein Basisverzeichnis abgebildet wird (PSR-4 §3).

Nachdem Sie composer require ausgeführt haben, liest die Paket-Auto-Discovery von Laravel den Block extra.laravel in der composer.json dieses Pakets. Anschließend registriert sie den Provider und den Facade-Alias für Sie, sodass Sie config/app.php nicht manuell bearbeiten müssen. Dieser Block sieht so aus:

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

Die Paketdokumentation von Laravel beschreibt, wie das funktioniert. Das Array extra.laravel.providers registriert Service-Provider automatisch, und das Array extra.laravel.aliases registriert Facade-Aliase automatisch (Laravel-12-Leitfaden zur Paketentwicklung, https://laravel.com/docs/12.x/packages, abgerufen am 2026-05-18).

Veröffentlichen Sie die Konfigurationsdatei mit dem Tag nextpdf-config. Dieser Tag-Name ist in NextPdfServiceProvider::boot() definiert.

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

Dadurch wird config/nextpdf.php in Ihre Anwendung geschrieben. Der Provider führt während register() außerdem die Standardkonfiguration des Pakets unter dem Schlüssel nextpdf zusammen, sodass das Paket bereits vor dem Veröffentlichen funktioniert. Durch das Veröffentlichen wird die Datei lediglich in Ihrer Anwendung bearbeitbar.

Bestätigen Sie, dass der Provider erkannt wird:

Terminal-Fenster
php artisan package:discover --ansi

Für reproduzierbare Deployments pinnen Sie die Einschränkung. Deaktivieren Sie die Discovery nur dann ausdrücklich, wenn Sie den Provider selbst registrieren:

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

Wenn die Discovery deaktiviert ist, registrieren Sie den Provider selbst in bootstrap/providers.php:

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

Das Paket listet optionale Begleitpakete in seiner composer.json unter suggest auf und erkennt sie zur Laufzeit:

PaketEffekt nach der InstallationErkennungspunkt
nextpdf/artisanDie Konfiguration des Chrome-CDP-HTML-Renderers wird auf das Dokument-Binding angewendet, sofern eine Chrome-Factory-Klasse vorhanden istNextPdfServiceProvider::register() prüft auf die Chrome-Browser-Factory-Klasse
nextpdf/premiumSignatur (PAdES B-B), PDF/A-Archivierung und E-Rechnungs-Vertragskonkrete werden über die vorhandenen Container-Schlüssel aufgelöstwird erst beim ersten Container-Auflösen aufgelöst

Installieren Sie eine Erweiterung auf dieselbe Weise:

Terminal-Fenster
composer require nextpdf/artisan

Eine weitere Verdrahtung ist nicht nötig. Der Provider erkennt die Erweiterung bei der nächsten Registrierung.

  • Das Veröffentlichen ist idempotent. Es überschreibt eine vorhandene config/nextpdf.php nicht. Fügen Sie --force hinzu, wenn Sie sie absichtlich überschreiben möchten.
  • Da der Provider deferred ist, genügt ein php artisan package:discover, das das Paket bestätigt. Die Bindings selbst erscheinen erst beim ersten Auflösen.
  • Das Paket unterstützt nextpdf/core sowohl auf der ^3.0- als auch auf der ^5.2-Hauptlinie. Passen Sie die Core-Einschränkung an die Linie an, die Ihre Anwendung pinnt. Die Laravel-Adapter-Oberfläche ist auf beiden Linien dieselbe.
  • Das README-Badge und die composer.json weisen übereinstimmend Apache-2.0 aus. Das Paket wurde von LGPL-3.0-or-later umlizenziert. Versionen, die vor der Migration getaggt wurden, bleiben unter der vorherigen Lizenz (siehe CHANGELOG.md).

Das Auflösen von nextpdf/core dominiert den Aufwand von composer require. Die Registrierung des Providers verursacht keine messbaren Boot-Kosten, weil alle Bindings verzögerte Closures sind. Die Konstruktionskosten beim ersten Auflösen sind unter /integrations/laravel/boot-and-discovery/ dokumentiert.

Installieren Sie das kanonische Packagist-Paket nextpdf/laravel. Das Paket liefert SPDX-REUSE-Header und eine NOTICE-Datei nach Apache-2.0 mit. Pinnen Sie die Einschränkung in composer.json und committen Sie composer.lock, damit bereitgestellte Worker den verifizierten Abhängigkeitsbaum auflösen.

AussageQuelleAbschnittreference_id
PSR-4-Präfix wird auf das Basisverzeichnis abgebildetPSR-4-Autoloader§3

Die Schlüsselnamen der Laravel-Auto-Discovery wurden anhand der offiziellen Laravel-12-Dokumentation zur Paketentwicklung geprüft (https://laravel.com/docs/12.x/packages, abgerufen am 2026-05-18).

nextpdf/premium fügt Konkrete für Signatur, PDF/A und E-Rechnung hinzu. Das ist eine optionale Enterprise-Fähigkeit. Das hier dokumentierte Core-Paket benötigt keine Codeänderung, um sie zu übernehmen. Siehe https://nextpdf.dev/get-license/?intent=laravel-signing.

  • /integrations/laravel/overview/ — Paketarchitektur und Binding-Tabelle
  • /integrations/laravel/quickstart/ — erster lauffähiger Controller
  • /integrations/laravel/configuration/ — jeder Konfigurationsschlüssel erklärt
  • /integrations/laravel/boot-and-discovery/ — Discovery-Interna und Binding-Lebensdauern