Installation des NextPDF-Laravel-Pakets
Auf einen Blick
Abschnitt betitelt „Auf einen Blick“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.
Installation
Abschnitt betitelt „Installation“composer require nextpdf/laravelDas Paket deklariert in seiner composer.json die folgenden Einschränkungen:
| Anforderung | Einschrä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).
Konzeptioneller Überblick
Abschnitt betitelt „Konzeptioneller Überblick“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:
{ "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).
Codebeispiel — Schnellstart
Abschnitt betitelt „Codebeispiel — Schnellstart“Veröffentlichen Sie die Konfigurationsdatei mit dem Tag nextpdf-config. Dieser Tag-Name ist in NextPdfServiceProvider::boot() definiert.
php artisan vendor:publish --tag=nextpdf-configDadurch 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:
php artisan package:discover --ansiCodebeispiel — Produktion
Abschnitt betitelt „Codebeispiel — Produktion“Für reproduzierbare Deployments pinnen Sie die Einschränkung. Deaktivieren Sie die Discovery nur dann ausdrücklich, wenn Sie den Provider selbst registrieren:
{ "extra": { "laravel": { "dont-discover": [ "nextpdf/laravel" ] } }}Wenn die Discovery deaktiviert ist, registrieren Sie den Provider selbst in bootstrap/providers.php:
<?php
declare(strict_types=1);
return [ App\Providers\AppServiceProvider::class, NextPDF\Laravel\NextPdfServiceProvider::class,];Optionale Erweiterungen
Abschnitt betitelt „Optionale Erweiterungen“Das Paket listet optionale Begleitpakete in seiner composer.json unter suggest auf und erkennt sie zur Laufzeit:
| Paket | Effekt nach der Installation | Erkennungspunkt |
|---|---|---|
nextpdf/artisan | Die Konfiguration des Chrome-CDP-HTML-Renderers wird auf das Dokument-Binding angewendet, sofern eine Chrome-Factory-Klasse vorhanden ist | NextPdfServiceProvider::register() prüft auf die Chrome-Browser-Factory-Klasse |
nextpdf/premium | Signatur (PAdES B-B), PDF/A-Archivierung und E-Rechnungs-Vertragskonkrete werden über die vorhandenen Container-Schlüssel aufgelöst | wird erst beim ersten Container-Auflösen aufgelöst |
Installieren Sie eine Erweiterung auf dieselbe Weise:
composer require nextpdf/artisanEine weitere Verdrahtung ist nicht nötig. Der Provider erkennt die Erweiterung bei der nächsten Registrierung.
Grenzfälle & Fallstricke
Abschnitt betitelt „Grenzfälle & Fallstricke“- Das Veröffentlichen ist idempotent. Es überschreibt eine vorhandene
config/nextpdf.phpnicht. Fügen Sie--forcehinzu, 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/coresowohl 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.jsonweisen ü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 (sieheCHANGELOG.md).
Leistung
Abschnitt betitelt „Leistung“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.
Sicherheitshinweise
Abschnitt betitelt „Sicherheitshinweise“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.
Konformität
Abschnitt betitelt „Konformität“| Aussage | Quelle | Abschnitt | reference_id |
|---|---|---|---|
| PSR-4-Präfix wird auf das Basisverzeichnis abgebildet | PSR-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).
Kommerzieller Kontext
Abschnitt betitelt „Kommerzieller Kontext“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.
Siehe auch
Abschnitt betitelt „Siehe auch“- /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