Интеграция бэкпорта NextPDF
Это только инструмент сборки, а не зависимость времени выполнения. Сопровождающие используют этот пакет, чтобы создавать бэкпорт-дистрибутивы NextPDF для PHP (PHP: Hypertext Preprocessor) 7.4 и PHP 8.1. Приложения никогда не должны добавлять этот пакет как зависимость времени выполнения.
Краткий обзор
Заголовок раздела «Краткий обзор»Есть две разные точки интеграции. Репозиторий сборщика подключается к процессу выпуска на узле сборки. Приложение-потребитель добавляет в своё дерево зависимостей только созданный пакет — nextpdf/backport. Сам сборщик никогда не попадает в дерево зависимостей приложения.
Установка (только узлы сборки)
Заголовок раздела «Установка (только узлы сборки)»Поскольку сборщик объявляет "type": "project" в composer.json, работайте с ним как с репозиторием проекта, а не как с библиотекой. Подключайте его через клонирование репозитория и установку зависимостей для разработки, а не через composer require:
git clone https://github.com/nextpdf-labs/backport.gitcd backportgit checkout PHP74composer install --prefer-dist --no-progressПереключитесь на ветку той цели, которую планируете собрать. Используйте PHP74 (по умолчанию) для дистрибутива PHP 7.4, содержащего только ядро. Используйте PHP81 для дистрибутива PHP 8.1 со всеми адаптерами. Не передавайте --no-dev. Для сборки нужны движок Rector, PHPStan и PHPUnit — это dev-зависимости. Проверено по composer.json (type, require-dev) и по модели двух веток в /integrations/backport/overview/.
Загрузка и автообнаружение
Заголовок раздела «Загрузка и автообнаружение»У сборщика нет автообнаружения для фреймворков. Во время сборки scripts/build.php загружает Rector и три пользовательских правила для абстрактного синтаксического дерева через явные вызовы require_once и автозагрузку Composer PHP Standards Recommendation 4 (PSR-4). Полная последовательность загрузки и обнаружения исходных модулей описана в /integrations/backport/boot-and-discovery/.
Привязки контейнера
Заголовок раздела «Привязки контейнера»Неприменимо. Сборщик — это инструмент с интерфейсом командной строки (CLI), без контейнера внедрения зависимостей. Проверено по структуре репозитория и composer.jsonautoload.
Конфигурация публикации
Заголовок раздела «Конфигурация публикации»“Конфигурация публикации” — это не отдельный файл, а набор флагов сборки и фиксированные определения пакетов в scripts/adjust-composer.php:
- Карта целей.
--target=php81создаётnextpdf/backport(ограничение>=8.1 <8.5, заменяет ядро, адаптеры и compat-legacy) и, если он включён,nextpdf/backport-pro.--target=php74создаётnextpdf/backport(ограничение>=7.4 <8.1, заменяет толькоnextpdf/core), без Pro. - Исключение.
--no-proисключает пакет Pro для цели PHP 8.1. По своей конструкции цель PHP 7.4 исключает Pro и все адаптеры. - Версия. Сборка записывает
--version(или тег выпуска после удаления ведущегоv) в сгенерированныеcomposer.jsonиCHANGELOG.md.
Это поведение проверено по scripts/build.php и scripts/adjust-composer.php (generatePublicComposer(), generateProComposer(), buildReplace()). Полный справочник флагов приведён в /integrations/backport/configuration/.
Интеграция в процесс выпуска
Заголовок раздела «Интеграция в процесс выпуска»Сборщик подключается к процессу выпуска через рабочие процессы GitHub Actions в .github/workflows/. 0-ci.yml проверяет каждое изменение в каждой постоянной ветке с помощью PHPStan, тестов правил и пробного прогона. build.yml создаёт и выпускает дистрибутив, когда получает событие repository-dispatch source-release или запускается вручную. Полная модель работы — триггеры, дорожки, матрица проверки и общий выпуск — описана в /integrations/backport/production-usage/.
Дымовой тест потребления результата
Заголовок раздела «Дымовой тест потребления результата»Конвейер выпуска и есть интеграционный дымовой тест. После завершения сборки рабочий процесс переключает среду на целевую версию PHP и запускает php -l по всему сгенерированному исходному коду. Затем он устанавливает и проверяет созданный пакет по всей матрице проверки (PHP 8.1–8.4 для дорожки PHP 8.1, PHP 7.4 и 8.0 для дорожки PHP 7.4). Дистрибутив, отклонённый целевой средой выполнения, не доходит до выпуска. Проверено по .github/workflows/build.yml (задания проверки синтаксиса и validate-*). Локально созданный результат можно проверить дымовым тестом таким же образом с помощью команды Docker, которую выводит этап проверки, — см. /integrations/backport/quickstart/.
Публичные точки входа
Заголовок раздела «Публичные точки входа»Публичная поверхность сборщика — это CLI-оркестратор и алиасы скриптов Composer, а не исполняемый файл bin/.
| Точка входа | Разрешается в | Назначение |
|---|---|---|
composer build | php scripts/build.php | Запустить полную сборку |
composer build:dry | php scripts/build.php --dry-run | Запустить пробную сборку |
composer test | phpunit | Запустить наборы фикстур для правил |
composer analyse | phpstan analyse rector/rules scripts --level=10 | Проанализировать код сборки |
Проверено по composer.jsonscripts. Пакет-потребитель предоставляет исходные символы программного интерфейса приложения (API) NextPDF\ без изменений со стороны бэкпорта. Пакет заменяет исходные пакеты и автоматически загружает объединённое дерево через единый префикс PSR-4.
См. также
Заголовок раздела «См. также»- /integrations/backport/overview/ — что такое сборщик и что он создаёт.
- /integrations/backport/boot-and-discovery/ — последовательность загрузки и обнаружение исходного кода.
- /integrations/backport/install/ — установка на узле сборки и у потребителя.
- /integrations/backport/production-usage/ — конвейер выпуска.