NextPDF-backportintegratie
Alleen buildtooling, geen runtime-afhankelijkheid. Beheerders gebruiken dit pakket om de NextPDF-backportdistributies voor PHP (PHP: Hypertext Preprocessor) 7.4 en PHP 8.1 te produceren. Toepassingen mogen dit pakket nooit als runtime-afhankelijkheid toevoegen.
In een oogopslag
Sectie met titel “In een oogopslag”Er zijn twee afzonderlijke integratiepunten. Je integreert de builder-repository in de releasestroom van de buildhost. Een downstream-toepassing integreert alleen het geproduceerde pakket, nextpdf/backport, in haar afhankelijkheidsboom. De builder komt nooit in de afhankelijkheidsboom van een toepassing terecht.
Installeren (alleen buildhosts)
Sectie met titel “Installeren (alleen buildhosts)”Omdat de builder "type": "project" declareert in composer.json, behandel je deze als een project-repository en niet als een bibliotheek. Integreer hem door de repository te klonen en een dev-installatie uit te voeren, niet met composer require:
git clone https://github.com/nextpdf-labs/backport.gitcd backportgit checkout PHP74composer install --prefer-dist --no-progressCheck de branch uit voor het doel dat je wilt produceren. Gebruik PHP74 (de standaard) voor de PHP 7.4-distributie met alleen core. Gebruik PHP81 voor de PHP 8.1-distributie met alle adapters. Geef --no-dev niet door. De build vereist de Rector-engine, PHPStan en PHPUnit; dit zijn dev-afhankelijkheden. Geverifieerd aan de hand van composer.json (type, require-dev) en het tweetakkenmodel in /integrations/backport/overview/.
Boot en auto-discovery
Sectie met titel “Boot en auto-discovery”De builder heeft geen framework-auto-discovery. Tijdens de build laadt scripts/build.php Rector en de drie aangepaste regels voor de abstract syntax tree via expliciete require_once-aanroepen en Composer PHP Standards Recommendation 4 (PSR-4)-autoloading. De volledige bootsequentie en bronmodule-discovery zijn gedocumenteerd in /integrations/backport/boot-and-discovery/.
Container-bindings
Sectie met titel “Container-bindings”Niet van toepassing. De builder is een command-line-interface (CLI)-tool zonder dependency-injection-container. Geverifieerd aan de hand van de repository-structuur en composer.jsonautoload.
Publicatieconfiguratie
Sectie met titel “Publicatieconfiguratie”De “publicatieconfiguratie” is geen afzonderlijk bestand. Het is de verzameling build-vlaggen en vaste pakketdefinities in scripts/adjust-composer.php:
- Doeltoewijzing.
--target=php81produceertnextpdf/backport(constraint>=8.1 <8.5, vervangt core, adapters en compat-legacy) en, indien opgenomen,nextpdf/backport-pro.--target=php74produceertnextpdf/backport(constraint>=7.4 <8.1, vervangt alleennextpdf/core) en geen Pro. - Uitsluiting.
--no-prosluit het Pro-pakket uit bij het PHP 8.1-doel. Het PHP 7.4-doel sluit Pro en alle adapters per definitie uit. - Versie. De build schrijft
--version(of de release-tag na verwijdering van de voorafgaandev) naar de gegenereerdecomposer.jsonenCHANGELOG.md.
Dit gedrag is geverifieerd aan de hand van scripts/build.php en scripts/adjust-composer.php (generatePublicComposer(), generateProComposer(), buildReplace()). De volledige vlaggenreferentie staat in /integrations/backport/configuration/.
Integratie in de releasestroom
Sectie met titel “Integratie in de releasestroom”Je integreert de builder in een releasestroom via de GitHub Actions-workflows in .github/workflows/. 0-ci.yml bewaakt elke wijziging op een permanente branch met PHPStan, de regeltests en een dry-run. build.yml produceert en publiceert de distributie wanneer het een source-release-repository-dispatch-event of een handmatige dispatch ontvangt. Het volledige operationele model — triggers, lanes, validatiematrix en de gedeelde release — is gedocumenteerd in /integrations/backport/production-usage/.
Smoke-test voor uitvoerverbruik
Sectie met titel “Smoke-test voor uitvoerverbruik”De releasepipeline is de integratie-smoke-test. Nadat de build is voltooid, schakelt de workflow de runner over naar de doel-PHP en voert php -l uit over de uitgegeven broncode. Vervolgens installeert en test de workflow het geproduceerde pakket over de validatiematrix (PHP 8.1–8.4 voor de PHP 8.1-lane, PHP 7.4 en 8.0 voor de PHP 7.4-lane). Een distributie die een doel-runtime afwijst, wordt niet gereleaset. Geverifieerd aan de hand van .github/workflows/build.yml (de syntaxiscontrole en de validate-*-jobs). Je kunt lokaal geproduceerde uitvoer op dezelfde manier smoke-testen met het Docker-commando dat de validatiefase afdrukt — zie /integrations/backport/quickstart/.
Publieke ingangspunten
Sectie met titel “Publieke ingangspunten”Het publieke oppervlak van de builder bestaat uit de CLI-orchestrator en de bijbehorende Composer-scriptaliassen, niet uit een bin/-executable.
| Ingangspunt | Verwijst naar | Doel |
|---|---|---|
composer build | php scripts/build.php | De volledige build uitvoeren |
composer build:dry | php scripts/build.php --dry-run | Een dry-run van de build uitvoeren |
composer test | phpunit | De fixture-suites voor de regels uitvoeren |
composer analyse | phpstan analyse rector/rules scripts --level=10 | De buildcode analyseren |
Geverifieerd aan de hand van composer.jsonscripts. Het downstream-pakket stelt de oorspronkelijke application programming interface (API)-symbolen van NextPDF\ beschikbaar; de backport wijzigt ze niet. Het pakket vervangt de bronpakketten en autoloadt de samengevoegde boom via de enkele PSR-4-prefix.
Zie ook
Sectie met titel “Zie ook”- /integrations/backport/overview/ — wat de builder is en wat hij produceert.
- /integrations/backport/boot-and-discovery/ — bootsequentie en bronmodule-discovery.
- /integrations/backport/install/ — installatie op de buildhost en downstream.
- /integrations/backport/production-usage/ — de releasepipeline.