Instalación del bundle de Symfony de NextPDF
Visión general
Sección titulada «Visión general»El bundle se instala con Composer. En una aplicación con Symfony Flex, se registra automáticamente. En una aplicación sin Flex, se registra una sola vez en config/bundles.php.
Requisitos
Sección titulada «Requisitos»Las restricciones siguientes provienen del composer.json del bundle.
| Dependencia | Restricción |
|---|---|
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 |
El bundle también comprueba dos extensiones de PHP durante la construcción del contenedor: ext-mbstring y ext-zlib. Ambas están habilitadas en todos los entornos de ejecución de PHP compatibles. La comprobación falla de inmediato con un mensaje claro si falta cualquiera de las dos.
Paquetes opcionales
Sección titulada «Paquetes opcionales»Estos paquetes se declaran en suggest dentro del composer.json del bundle. Cuando están presentes, habilitan comportamientos adicionales:
| Paquete | Agrega |
|---|---|
nextpdf/artisan | Renderizado de HTML con Chrome CDP, detectado automáticamente en tiempo de compilación |
nextpdf/premium | Archivado PDF/A y firma digital (instala el nivel Pro), detectado automáticamente en tiempo de compilación |
symfony/messenger | Generación asíncrona de PDF mediante el handler de Messenger |
Instalación con Composer
Sección titulada «Instalación con Composer»composer require nextpdf/symfonyEl bundle se carga automáticamente con el prefijo PSR-4 NextPDF\Symfony\, asignado a src/Symfony/. Esta asignación se declara en composer.jsonautoload.psr-4. El cargador automático generado por Composer asigna el prefijo del espacio de nombres a ese directorio base, tal como lo define la especificación del cargador automático PSR-4; consulta PSR-4 §2.
Registrar el bundle
Sección titulada «Registrar el bundle»Symfony Flex (recomendado)
Sección titulada «Symfony Flex (recomendado)»El bundle incluye una sugerencia de registro automático en composer.json:
{ "extra": { "symfony": { "bundles": { "NextPDF\\Symfony\\NextPdfBundle": "all" } } }}En una aplicación con Flex habilitado, esta entrada agrega el bundle a config/bundles.php para todos los entornos (all). No es necesario editar el archivo a mano. Para conocer el modelo de registro, consulta la documentación oficial de bundles de Symfony (https://symfony.com/doc/current/bundles.html).
Registro manual (sin Flex)
Sección titulada «Registro manual (sin Flex)»Si la aplicación no usa Symfony Flex, se debe agregar el bundle manualmente a config/bundles.php:
return [ // ... other bundles NextPDF\Symfony\NextPdfBundle::class => ['all' => true],];La clase del bundle es NextPDF\Symfony\NextPdfBundle. Extiende la clase base Symfony\Component\HttpKernel\Bundle\Bundle de Symfony. El método getPath() del bundle devuelve la raíz del paquete. Su método build() registra el compiler pass OptionalExtensionPass.
Proporcionar el archivo de configuración
Sección titulada «Proporcionar el archivo de configuración»El alias de configuración del bundle es nextpdf. Crear config/packages/nextpdf.yaml. Cuando se publique, una recipe de Flex dejará aquí una copia predeterminada. Un archivo mínimo que se apoya por completo en los valores predeterminados integrados tiene este aspecto:
nextpdf: ~Cada clave tiene un valor predeterminado, así que una configuración vacía es válida. La página /integrations/symfony/configuration/ documenta el árbol de configuración completo.
Verificar la instalación
Sección titulada «Verificar la instalación»Confirmar que el contenedor ve los servicios del bundle:
php bin/console debug:container nextpdfDeben aparecer servicios que incluyan el alias nextpdf.document y NextPDF\Symfony\Service\PdfFactory. Para inspeccionar la configuración resuelta, ejecutar:
php bin/console debug:config nextpdfEsto imprime el árbol de configuración combinado, es decir, las anulaciones definidas junto con los valores predeterminados.
Casos límite y problemas comunes
Sección titulada «Casos límite y problemas comunes»- Rango de la restricción del core — el bundle acepta
nextpdf/core^3.0 || ^5.2. Composer resuelve la versión que satisfaga el resto del grafo de dependencias. Fijar una sola versión mayor en elcomposer.jsonde la aplicación si se necesita una versión determinista del motor. - Protección de extensión faltante — si
php bin/consolefalla al arrancar con un mensaje sobreext-mbstringoext-zlib, habilita la extensión indicada enphp.ini. Este es un comportamiento de fallo inmediato intencional, no un defecto del bundle. - Flex no registró el bundle — limpiar la caché de Composer y reinstalar. Si no se usa Flex, recurrir al paso manual de
config/bundles.php.
Conformidad
Sección titulada «Conformidad»Cada fila contiene una afirmación normativa de esta página, anclada a un reference_id completo de 64 dígitos hexadecimales del corpus SDO controlado. La procedencia está en _sidecars/rag-citations.yaml. La procedencia cubre el manifiesto del corpus y el transporte usado para la recuperación.
| Especificación | Cláusula | reference_id | Afirmación |
|---|---|---|---|
| PSR-4 | psr_4_autoload#x1.x2.p5 | Asignación del prefijo del espacio de nombres del cargador automático a un directorio |
Consulta también
Sección titulada «Consulta también»- /integrations/symfony/overview/ — qué proporciona el bundle.
- /integrations/symfony/configuration/ — árbol de configuración completo y tabla de servicios.
- /integrations/symfony/quickstart/ — primer controlador ejecutable.
- /integrations/symfony/boot-and-discovery/ — secuencia detallada de descubrimiento y arranque.