Ir al contenido

Instalación del bundle de Symfony de NextPDF

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.

Las restricciones siguientes provienen del composer.json del bundle.

DependenciaRestricció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.

Estos paquetes se declaran en suggest dentro del composer.json del bundle. Cuando están presentes, habilitan comportamientos adicionales:

PaqueteAgrega
nextpdf/artisanRenderizado de HTML con Chrome CDP, detectado automáticamente en tiempo de compilación
nextpdf/premiumArchivado PDF/A y firma digital (instala el nivel Pro), detectado automáticamente en tiempo de compilación
symfony/messengerGeneración asíncrona de PDF mediante el handler de Messenger
Ventana de terminal
composer require nextpdf/symfony

El 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.

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).

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.

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.

Confirmar que el contenedor ve los servicios del bundle:

Ventana de terminal
php bin/console debug:container nextpdf

Deben aparecer servicios que incluyan el alias nextpdf.document y NextPDF\Symfony\Service\PdfFactory. Para inspeccionar la configuración resuelta, ejecutar:

Ventana de terminal
php bin/console debug:config nextpdf

Esto imprime el árbol de configuración combinado, es decir, las anulaciones definidas junto con los valores predeterminados.

  • 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 el composer.json de la aplicación si se necesita una versión determinista del motor.
  • Protección de extensión faltante — si php bin/console falla al arrancar con un mensaje sobre ext-mbstring o ext-zlib, habilita la extensión indicada en php.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.

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ónCláusulareference_idAfirmación
PSR-4psr_4_autoload#x1.x2.p5Asignación del prefijo del espacio de nombres del cargador automático a un directorio
  • /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.