Cookbook des intégrations
Cookbook des intégrations
Section intitulée « Cookbook des intégrations »Le cœur NextPDF génère des documents PDF 2.0 depuis PHP. Les neuf packages d’intégration de l’écosystème relient ce moteur à un framework, un backend de rendu, une base de code héritée, un pipeline de build ou un service réseau. Cette page explique à quoi sert chaque intégration, répertorie le nom de package et la contrainte de version du cœur pour chacune (lus directement dans le composer.json de chaque package), et renvoie vers les recipes propres à chaque intégration, publiées ici au fur et à mesure que les dépôts sources publient leurs arborescences docs/public/.
Cette page est un index ; elle ne fait donc aucune affirmation de comportement sur une intégration. Chaque intégration possède ses propres recipes dans son propre dépôt. L’agrégateur les rapatrie sur ce site ; tant qu’une recipe n’a pas encore été agrégée, le lien ci-dessous pointe vers un placeholder. Pour une recommandation orientée cas d’usage, lis Choisir une intégration. Pour le contrat suivi par chaque recipe exécutable, lis Conventions des recipes.
Les cinq formes d’intégration
Section intitulée « Les cinq formes d’intégration »Les neuf packages se répartissent en cinq formes. La forme t’indique le type de problème que l’intégration résout.
- Les intégrations de framework raccordent NextPDF au conteneur de services et au cycle de vie des requêtes d’un framework applicatif :
nextpdf/laravel,nextpdf/symfony,nextpdf/codeigniter. Tu en installes une, tu résous un service, puis tu renvoies une réponse PDF. - Les ponts de rendu délèguent l’étape HTML-vers-PDF ou Office-vers-PDF à un backend de rendu externe au lieu du pipeline in-process :
nextpdf/artisan(headless Chrome via le Chrome DevTools Protocol),nextpdf/gotenberg(un microservice Gotenberg),nextpdf/cloudflare(Cloudflare Browser Rendering en périphérie). - Un shim de compatibilité permet à une base de code écrite contre une bibliothèque PDF héritée d’appeler NextPDF sans réécriture :
nextpdf/compat-legacy. - Un outil de build produit un backport PHP 8.1 / 7.4 de NextPDF pour les runtimes qui ne peuvent pas exécuter PHP 8.4 :
nextpdf/backport-builder. - Un service réseau expose NextPDF via REST, gRPC et le Model Context Protocol pour les systèmes d’IA et les appelants distants :
nextpdf/server(distribué sous le nom NextPDF Connect).
Les ponts de rendu qui communiquent en HTTP (nextpdf/gotenberg, nextpdf/cloudflare, ainsi que le chemin client HTTP dans nextpdf/laravel) dépendent d’un client HTTP PSR-18 fourni par l’application hôte. Un client PSR-18 lève une exception client typée uniquement lorsqu’il ne peut pas du tout envoyer la requête, comme l’énonce la clause directrice PSR-18 §4. Une réponse HTTP 4xx ou 5xx est une valeur de retour normale plutôt qu’une exception, ce que la même clause PSR-18 §4 énonce également. Les recipes qui appellent un renderer distant traitent l’erreur de transport et le statut d’échec comme deux cas distincts.
Référence des packages et des contraintes de cœur
Section intitulée « Référence des packages et des contraintes de cœur »Chaque valeur ci-dessous est lue dans le composer.json du package nommé, qui fait autorité. La contrainte de cœur correspond à l’exigence nextpdf/core déclarée par le package. nextpdf/backport-builder ne déclare aucune exigence nextpdf/core parce qu’il transforme le code source du moteur au lieu de dépendre du moteur à l’exécution.
| Intégration | Package | Forme | Contrainte de cœur | Recipe |
|---|---|---|---|---|
| Laravel | nextpdf/laravel | Framework | ^3.0 || ^5.2 | Quickstart Laravel [[/integrations/laravel/quickstart/]] |
| Symfony | nextpdf/symfony | Framework | ^3.0 || ^5.2 | Quickstart Symfony [[/integrations/symfony/quickstart/]] |
| CodeIgniter 4 | nextpdf/codeigniter | Framework | ^3.0 || ^5.2 | Quickstart CodeIgniter [[/integrations/codeigniter/quickstart/]] |
| Artisan (Chrome) | nextpdf/artisan | Pont de rendu | ^3.0 || ^5.2 | Quickstart Artisan [[/integrations/artisan/quickstart/]] |
| Gotenberg | nextpdf/gotenberg | Pont de rendu | ^3.0 | Quickstart Gotenberg [[/integrations/gotenberg/quickstart/]] |
| Cloudflare | nextpdf/cloudflare | Pont de rendu | ^3.0 | Quickstart Cloudflare [[/integrations/cloudflare/quickstart/]] |
| Compat (legacy) | nextpdf/compat-legacy | Shim de compatibilité | ^3.0 | Quickstart compat-legacy [[/integrations/compat-legacy/quickstart/]] |
| Backport builder | nextpdf/backport-builder | Outil de build | sans objet | Quickstart backport [[/integrations/backport/quickstart/]] |
| Connect (server) | nextpdf/server | Service réseau | ^3.0 | Quickstart Connect [[/integrations/connect/quickstart/]] |
NextPDF distribue nextpdf/server sous le nom de produit NextPDF Connect ; ses recipes vivent sous le slug connect. nextpdf/compat-legacy provient de la famille compat ; ses recipes vivent sous le slug compat-legacy.
Chaque package requiert PHP >=8.4 <9.0 pour sa propre exécution. nextpdf/backport-builder existe précisément pour produire des artefacts qui s’exécutent sur PHP 8.1 (et une cible 7.4) ; c’est le moteur backporté résultant, et non le builder, qui s’exécute sur le runtime plus ancien.
À quoi sert chaque intégration
Section intitulée « À quoi sert chaque intégration »Intégrations de framework
Section intitulée « Intégrations de framework »nextpdf/laravel— un service provider Laravel 12, une façade et des helpers de réponse PDF. Utilise-la quand l’application est une application Laravel et que tu veux que NextPDF soit résolu depuis le conteneur puis renvoyé comme réponse HTTP sans câblage manuel. Recipe : [[/integrations/laravel/quickstart/]].nextpdf/symfony— un bundle Symfony 7 avec des services d’injection de dépendances et des helpers de réponse PDF. Utilise-le quand l’application est une application Symfony ; le bundle enregistre le moteur comme service et s’intègre aux réponsessymfony/http-foundation. Recipe : [[/integrations/symfony/quickstart/]].nextpdf/codeigniter— un service CodeIgniter 4, un wrapper de bibliothèque et des helpers de réponse PDF. Utilise-le quand l’application est une application CodeIgniter 4 et que tu veux rendre NextPDF accessible via le service locator du framework. Recipe : [[/integrations/codeigniter/quickstart/]].
Ponts de rendu
Section intitulée « Ponts de rendu »nextpdf/artisan— un renderer headless Chrome via le Chrome DevTools Protocol. Utilise-le quand un document a besoin du moteur CSS d’un navigateur pour une fidélité de mise en page que le pipeline HTML in-process ne vise pas, et que tu peux exécuter un processus Chrome près de l’application. Recipe : [[/integrations/artisan/quickstart/]].nextpdf/gotenberg— conversion Office-vers-PDF et HTML-vers-PDF via un microservice Gotenberg. Utilise-le quand l’entrée est un document Office ou quand le rendu doit s’exécuter hors processus, dans un service distinct. Il communique en HTTP via un client PSR-18 fourni par l’hôte. Recipe : [[/integrations/gotenberg/quickstart/]].nextpdf/cloudflare— rendu serverless via l’API Cloudflare Browser Rendering. Utilise-le quand le rendu doit s’exécuter en périphérie, sans processus de navigateur longue durée à opérer. Il communique en HTTP via un client PSR-18 fourni par l’hôte. Recipe : [[/integrations/cloudflare/quickstart/]].
Shim de compatibilité
Section intitulée « Shim de compatibilité »nextpdf/compat-legacy— une couche de compatibilité pour les bases de code écrites contre une bibliothèque PDF héritée. Utilise-la pour appeler NextPDF depuis du code existant sans réécrire d’abord les sites d’appel ; c’est une aide à la migration, pas une dépendance permanente. Recipe : [[/integrations/compat-legacy/quickstart/]].
Outil de build
Section intitulée « Outil de build »nextpdf/backport-builder— un pipeline de downgrade basé sur Rector qui produit un build PHP 8.1 (et une cible 7.4) de NextPDF. Utilise-le quand un runtime ne peut pas être déplacé vers PHP 8.4 et que tu as quand même besoin du moteur dans cet environnement. C’est une infrastructure de build ; elle n’est pas ajoutée aux dépendances d’exécution d’une application. Recipe : [[/integrations/backport/quickstart/]].
Service réseau
Section intitulée « Service réseau »nextpdf/server(NextPDF Connect) — expose NextPDF via une API REST, un service gRPC et le Model Context Protocol. Utilise-le quand les appelants sont distants, écrits dans un autre langage, ou sont des systèmes d’IA qui ont besoin d’un endpoint d’outil plutôt que d’une bibliothèque PHP. Recipe : [[/integrations/connect/quickstart/]].
Comment les liens de recipes se résolvent
Section intitulée « Comment les liens de recipes se résolvent »Chaque placeholder [[…]] ci-dessus est une référence vers une page à venir, rédigée dans le dépôt propre à l’intégration sous docs/public/ puis rapatriée sur ce site par l’agrégateur. Les slugs cibles suivent une seule convention :
/integrations/<integration>/<recipe>/Le token <integration> est le nom court repris directement du tableau de référence des packages et des contraintes de cœur ci-dessus ; chaque ligne de ce tableau donne ce nom court. La première recipe que publie chaque intégration s’appelle quickstart ; les recipes suivantes utilisent des segments <recipe> supplémentaires sous la même racine <integration>. Tant qu’une page cible n’est pas agrégée, son lien est un placeholder et ne se résout pas. Cet index ne fait aucune affirmation de comportement sur une page cible. Il consigne uniquement les faits de package vérifiés depuis composer.json et le slug qu’occuperont les recipes de chaque dépôt.
Voir aussi
Section intitulée « Voir aussi »- Choisir une intégration — une matrice de décision des cas d’usage vers les intégrations.
- Conventions des recipes — le contrat que suit chaque recipe exécutable de ce Cookbook.