Installer le bundle Symfony de NextPDF
Installe le bundle avec Composer. Dans une application Symfony Flex, le bundle s’enregistre automatiquement. Dans une application sans Flex, enregistre-le une seule fois dans config/bundles.php.
Prérequis
Section intitulée « Prérequis »Les contraintes ci-dessous proviennent du composer.json du bundle.
| Dépendance | Contrainte |
|---|---|
php | >=8.4 <9.0 |
nextpdf/core | ^3.0 || ^5.2 |
symfony/framework-bundle | ^7.2 |
symfony/dependency-injection | ^7.2 |
symfony/config | ^7.2 |
symfony/http-foundation | ^7.2 |
psr/log | ^3.0 |
Le bundle vérifie également la présence de deux extensions PHP lors de la compilation du conteneur : ext-mbstring et ext-zlib. Ces deux extensions sont activées dans chaque runtime PHP pris en charge. Le garde-fou déclenche un échec immédiat, avec un message clair, si l’une des deux manque.
Packages optionnels
Section intitulée « Packages optionnels »Ces packages sont déclarés dans la section suggest du composer.json du bundle. Lorsqu’ils sont installés, ils débloquent un comportement supplémentaire :
| Package | Apporte |
|---|---|
nextpdf/artisan | Rendu HTML via Chrome CDP, détecté automatiquement lors de la compilation |
nextpdf/premium | Archivage PDF/A et signature numérique (installe le niveau Pro), détecté automatiquement lors de la compilation |
symfony/messenger | Génération PDF asynchrone via le handler Messenger |
Installer avec Composer
Section intitulée « Installer avec Composer »composer require nextpdf/symfonyLe bundle est chargé automatiquement sous le préfixe PSR-4 NextPDF\Symfony\, associé à src/Symfony/. Ce mappage est déclaré dans composer.jsonautoload.psr-4. L’autoloader généré par Composer associe le préfixe d’espace de noms à ce répertoire de base, comme le définit la spécification d’autoloader PSR-4 — voir PSR-4 §2.
Enregistrer le bundle
Section intitulée « Enregistrer le bundle »Symfony Flex (recommandé)
Section intitulée « Symfony Flex (recommandé) »Le bundle fournit une indication d’enregistrement automatique dans composer.json :
{ "extra": { "symfony": { "bundles": { "NextPDF\\Symfony\\NextPdfBundle": "all" } } }}Dans une application où Flex est activé, cette entrée ajoute le bundle à config/bundles.php pour chaque environnement (all). Tu n’as pas besoin de modifier le fichier manuellement. Pour le modèle d’enregistrement, consulte la documentation officielle des bundles Symfony (https://symfony.com/doc/current/bundles.html).
Enregistrement manuel (sans Flex)
Section intitulée « Enregistrement manuel (sans Flex) »Si ton application n’utilise pas Symfony Flex, ajoute toi-même le bundle à config/bundles.php :
return [ // ... other bundles NextPDF\Symfony\NextPdfBundle::class => ['all' => true],];La classe du bundle est NextPDF\Symfony\NextPdfBundle. Elle étend la classe de base Symfony Symfony\Component\HttpKernel\Bundle\Bundle. Le getPath() du bundle renvoie la racine du package. Sa méthode build() enregistre la passe de compilation OptionalExtensionPass.
Fournir le fichier de configuration
Section intitulée « Fournir le fichier de configuration »L’alias de configuration du bundle est nextpdf. Crée config/packages/nextpdf.yaml. Une fois publiée, une recipe Flex y dépose pour toi une copie par défaut. Un fichier minimal qui s’appuie entièrement sur les valeurs par défaut intégrées ressemble à ceci :
nextpdf: ~Chaque clé ayant une valeur par défaut, une configuration vide est valide. La page /integrations/symfony/configuration/ documente l’arborescence de configuration complète.
Vérifier l’installation
Section intitulée « Vérifier l’installation »Vérifie que le conteneur voit bien les services du bundle :
php bin/console debug:container nextpdfTu devrais voir des services, notamment l’alias nextpdf.document et NextPDF\Symfony\Service\PdfFactory. Pour inspecter la configuration résolue, exécute :
php bin/console debug:config nextpdfCela affiche l’arborescence de configuration fusionnée, avec tes surcharges et les valeurs par défaut.
Cas limites et pièges
Section intitulée « Cas limites et pièges »- Plage de contraintes du core — le bundle accepte
nextpdf/core^3.0 || ^5.2. Composer choisit celle qui satisfait le reste de ton graphe de dépendances. Épingle une seule version majeure dans lecomposer.jsonde ton application si tu as besoin d’une version déterministe du moteur. - Garde-fou d’extension manquante — si
php bin/consoleéchoue au démarrage avec un message concernantext-mbstringouext-zlib, active l’extension nommée dansphp.ini. C’est un comportement fail-fast intentionnel, pas un défaut du bundle. - Flex n’a pas enregistré le bundle — vide le cache de Composer, puis réinstalle. Si tu n’utilises pas Flex, reviens à l’étape manuelle
config/bundles.php.
Conformité
Section intitulée « Conformité »Chaque ligne correspond à une affirmation normative formulée sur cette page, associée à un reference_id complet de 64 caractères hexadécimaux issu du corpus SDO sous accès contrôlé. La provenance se trouve dans _sidecars/rag-citations.yaml. Elle couvre le manifeste du corpus et le transport de récupération.
| Spec | Clause | reference_id | Affirmation |
|---|---|---|---|
| PSR-4 | psr_4_autoload#x1.x2.p5 | Mappage du préfixe d’espace de noms vers le répertoire pour l’autoloader |
Voir aussi
Section intitulée « Voir aussi »- /integrations/symfony/overview/ — ce que le bundle fournit.
- /integrations/symfony/configuration/ — arborescence complète de configuration et table des services.
- /integrations/symfony/quickstart/ — premier contrôleur exécutable.
- /integrations/symfony/boot-and-discovery/ — séquence détaillée de découverte et de démarrage.