Installer le package Laravel NextPDF
Installe nextpdf/laravel avec Composer. La découverte automatique enregistre le service provider pour toi. Publie ensuite le fichier de configuration afin de pouvoir l’adapter. Le package détecte automatiquement les extensions NextPDF optionnelles.
Installation
Section intitulée « Installation »composer require nextpdf/laravelLe package déclare les contraintes suivantes dans son composer.json :
| Prérequis | Contrainte |
|---|---|
| PHP | >=8.4 <9.0 |
laravel/framework | ^12.0 |
nextpdf/core | ^3.0 || ^5.2 |
psr/http-client | ^1.0 |
Le package est chargé automatiquement via une seule table PSR-4. Le préfixe NextPDF\Laravel\ se résout vers src/Laravel/. Cette organisation suit la règle PSR-4 de correspondance entre préfixe et répertoire de base (PSR-4 §3).
Vue d’ensemble conceptuelle
Section intitulée « Vue d’ensemble conceptuelle »Après avoir lancé composer require, la découverte automatique des packages Laravel lit le bloc extra.laravel du composer.json de ce package. Elle enregistre ensuite le provider et l’alias de la facade pour toi, ce qui t’évite de modifier config/app.php à la main. Voici ce bloc :
{ "extra": { "laravel": { "providers": [ "NextPDF\\Laravel\\NextPdfServiceProvider" ], "aliases": { "Pdf": "NextPDF\\Laravel\\Facades\\Pdf" } } }}La documentation Laravel consacrée aux packages explique ce fonctionnement. Le tableau extra.laravel.providers enregistre automatiquement les service providers, et le tableau extra.laravel.aliases enregistre automatiquement les alias de facade (guide de développement de packages Laravel 12,
https://laravel.com/docs/12.x/packages, consulté le 2026-05-18).
Exemple de code — Démarrage rapide
Section intitulée « Exemple de code — Démarrage rapide »Publie le fichier de configuration avec le tag nextpdf-config. Ce tag est défini dans NextPdfServiceProvider::boot().
php artisan vendor:publish --tag=nextpdf-configCette commande écrit config/nextpdf.php dans ton application. Le provider fusionne aussi la configuration par défaut du package sous la clé nextpdf pendant register(), si bien que le package fonctionne même avant la publication. La publication rend simplement le fichier modifiable dans ton application.
Vérifie que le provider est bien découvert :
php artisan package:discover --ansiExemple de code — Production
Section intitulée « Exemple de code — Production »Pour des déploiements reproductibles, fige la contrainte. Désactive explicitement la découverte uniquement lorsque tu enregistres le provider toi-même :
{ "extra": { "laravel": { "dont-discover": [ "nextpdf/laravel" ] } }}Lorsque la découverte est désactivée, enregistre le provider toi-même dans bootstrap/providers.php :
<?php
declare(strict_types=1);
return [ App\Providers\AppServiceProvider::class, NextPDF\Laravel\NextPdfServiceProvider::class,];Extensions optionnelles
Section intitulée « Extensions optionnelles »Le package liste les packages compagnons optionnels sous suggest dans son composer.json. Il les détecte à l’exécution :
| Package | Effet une fois installé | Point de détection |
|---|---|---|
nextpdf/artisan | Quand une classe factory Chrome est présente, la configuration du renderer HTML Chrome CDP est appliquée au binding du document | NextPdfServiceProvider::register() vérifie la présence de la classe browser-factory Chrome |
nextpdf/premium | La signature (PAdES B-B), l’archivage PDF/A et les concrets du contrat de facture électronique sont résolus via les clés de conteneur existantes | résolus à la demande lors de la première résolution du conteneur |
Installe une extension de la même manière :
composer require nextpdf/artisanAucun câblage supplémentaire n’est nécessaire. Le provider détecte l’extension à son prochain enregistrement.
Cas limites & pièges
Section intitulée « Cas limites & pièges »- La publication est idempotente. Elle n’écrase pas un
config/nextpdf.phpexistant. Ajoute--forcelorsque tu veux l’écraser volontairement. - Le provider est différé, si bien qu’un
php artisan package:discoverconfirmant le package suffit. Les bindings eux-mêmes n’apparaissent qu’à la première résolution. - Le package prend en charge
nextpdf/coresur les deux lignes majeures^3.0et^5.2. Fais correspondre la contrainte du core à la ligne que ton application fige. La surface de l’adaptateur Laravel est identique sur les deux. - Le badge du README et le
composer.jsons’accordent sur Apache-2.0. Le package a migré depuis la licence LGPL-3.0-or-later. Les versions taguées avant la migration restent sous la licence précédente (voirCHANGELOG.md).
Performances
Section intitulée « Performances »La résolution de nextpdf/core domine le coût de composer require. L’enregistrement du provider n’ajoute aucun coût de démarrage mesurable, car tous les bindings sont des closures différées. Le coût de construction lors de la première résolution est documenté dans /integrations/laravel/boot-and-discovery/.
Notes de sécurité
Section intitulée « Notes de sécurité »Installe depuis le package Packagist canonique nextpdf/laravel. Le package fournit des en-têtes SPDX REUSE et un fichier Apache-2.0 NOTICE. Fige la contrainte dans composer.json et commite composer.lock pour que les workers déployés résolvent l’arbre des dépendances vérifié.
Conformité
Section intitulée « Conformité »| Affirmation | Source | Clause | reference_id |
|---|---|---|---|
| Le préfixe PSR-4 correspond au répertoire de base | PSR-4 Autoloader | §3 |
Les noms de clés de la découverte automatique de Laravel ont été corroborés dans la documentation officielle de développement de packages Laravel 12 (https://laravel.com/docs/12.x/packages, consulté le 2026-05-18).
Contexte commercial
Section intitulée « Contexte commercial »nextpdf/premium ajoute les concrets de signature, PDF/A et facture électronique. Il s’agit d’une capacité Enterprise optionnelle. Le package Core documenté ici n’exige aucune modification de code pour l’adopter. Voir https://nextpdf.dev/get-license/?intent=laravel-signing.
Voir aussi
Section intitulée « Voir aussi »- /integrations/laravel/overview/ — architecture du package et table des bindings
- /integrations/laravel/quickstart/ — premier contrôleur exécutable
- /integrations/laravel/configuration/ — explication de chaque clé de configuration
- /integrations/laravel/boot-and-discovery/ — rouages internes de la découverte et durées de vie des bindings