Integración del backport de NextPDF
Herramienta de compilación: NO es una dependencia en tiempo de ejecución. El equipo de mantenimiento consume este paquete para producir las distribuciones de backport de NextPDF para PHP 7.4 y PHP 8.1. Las aplicaciones nunca deben añadir este paquete como dependencia en tiempo de ejecución.
De un vistazo
Sección titulada «De un vistazo»Existen dos puntos de integración distintos. El host de compilación integra el repositorio del compilador en un flujo de publicación. La aplicación consumidora integra el paquete producido, nextpdf/backport, en su árbol de dependencias. El compilador nunca forma parte del árbol de dependencias de una aplicación.
Instalación (solo hosts de compilación)
Sección titulada «Instalación (solo hosts de compilación)»El compilador declara "type": "project" en composer.json; por tanto, es un repositorio de proyecto, no una biblioteca. Debe integrarse clonando el repositorio y ejecutando una instalación de desarrollo, no con un composer require:
git clone https://github.com/nextpdf-labs/backport.gitcd backportgit checkout PHP74composer install --prefer-dist --no-progressCambiar a la rama correspondiente al destino que se vaya a producir. Usar PHP74 (el valor predeterminado) para la distribución de solo núcleo de PHP 7.4. Usar PHP81 para la distribución de PHP 8.1 con todos los adaptadores. No pasar --no-dev. La compilación necesita el motor Rector, PHPStan y PHPUnit, que son dependencias de desarrollo. Comprobado con composer.json (type, require-dev) y el modelo de doble rama en /integrations/backport/overview/.
Arranque y descubrimiento automático
Sección titulada «Arranque y descubrimiento automático»No hay descubrimiento automático del framework. Durante la compilación, scripts/build.php conecta Rector y las tres reglas personalizadas del árbol de sintaxis abstracta mediante require_once explícito y la autocarga PSR-4 de Composer. La secuencia completa de arranque y el descubrimiento de módulos de origen se documentan en /integrations/backport/boot-and-discovery/.
Vinculaciones del contenedor
Sección titulada «Vinculaciones del contenedor»No aplica. El compilador es una herramienta de CLI sin contenedor de inyección de dependencias. Comprobado con la estructura del repositorio y composer.jsonautoload.
Configuración de publicación
Sección titulada «Configuración de publicación»La «configuración de publicación» no es un archivo, sino el conjunto de marcas de compilación y definiciones de paquete fijas en scripts/adjust-composer.php:
- Mapa de destinos.
--target=php81producenextpdf/backport(restricción>=8.1 <8.5, reemplaza el núcleo más los adaptadores más compat-legacy) y, cuando se incluye,nextpdf/backport-pro.--target=php74producenextpdf/backport(restricción>=7.4 <8.1, reemplaza solonextpdf/core) y no produce ningún paquete Pro. - Exclusión.
--no-proexcluye el paquete Pro en el destino de PHP 8.1. El destino de PHP 7.4 excluye Pro y todos los adaptadores por construcción. - Versión. La compilación escribe el valor de
--version(o la etiqueta de publicación con lavinicial eliminada) en elcomposer.jsongenerado y enCHANGELOG.md.
Comprobado con scripts/build.php y scripts/adjust-composer.php (generatePublicComposer(), generateProComposer(), buildReplace()). La referencia completa de marcas está en /integrations/backport/configuration/.
Integración en el flujo de publicación
Sección titulada «Integración en el flujo de publicación»El compilador se integra en un flujo de publicación mediante los flujos de trabajo de GitHub Actions en .github/workflows/. 0-ci.yml valida cada cambio en cualquiera de las ramas permanentes con PHPStan, las pruebas de reglas y una ejecución en seco. build.yml produce y publica la distribución cuando recibe un evento repository-dispatch source-release o una ejecución manual. El modelo operativo completo —desencadenantes, carriles, matriz de validación y publicación compartida— se documenta en /integrations/backport/production-usage/.
Prueba de humo del consumo de salida
Sección titulada «Prueba de humo del consumo de salida»El proceso de publicación es la prueba de humo de la integración. Tras la compilación, el flujo de trabajo configura el ejecutor con el PHP de destino y ejecuta php -l sobre el código fuente emitido. A continuación, instala y ejercita el paquete producido en toda la matriz de validación (PHP 8.1-8.4 para el carril de PHP 8.1, PHP 7.4 y 8.0 para el carril de PHP 7.4). Una distribución que un tiempo de ejecución de destino rechazaría no llega a publicarse. Comprobado con .github/workflows/build.yml (los trabajos de comprobación de sintaxis y validate-*). También es posible ejecutar localmente la prueba de humo de la salida producida del mismo modo, con el comando de Docker que imprime la etapa de validación; consulte /integrations/backport/quickstart/.
Puntos de entrada públicos
Sección titulada «Puntos de entrada públicos»La superficie pública del compilador es el orquestador de CLI y sus alias de scripts de Composer, no un ejecutable en bin/.
| Punto de entrada | Resuelve a | Propósito |
|---|---|---|
composer build | php scripts/build.php | Compilación completa |
composer build:dry | php scripts/build.php --dry-run | Compilación de ejecución en seco |
composer test | phpunit | Conjuntos de fixtures de reglas |
composer analyse | phpstan analyse rector/rules scripts --level=10 | Analizar estáticamente el código de compilación |
Comprobado con composer.jsonscripts. Los puntos de entrada del paquete producido son los símbolos originales de la API NextPDF\, sin cambios introducidos por el backport. El paquete reemplaza los paquetes de origen y carga automáticamente el árbol fusionado a través del único prefijo PSR-4.
Véase también
Sección titulada «Véase también»- /integrations/backport/overview/ — qué es el compilador y qué produce.
- /integrations/backport/boot-and-discovery/ — secuencia de arranque y descubrimiento de origen.
- /integrations/backport/install/ — instalación en el host de compilación y en la aplicación consumidora.
- /integrations/backport/production-usage/ — el proceso de publicación.