NextPDF Backport Builder-snelstart
Buildtool — geen runtime-afhankelijkheid. Voer deze handleiding uit op een onderhouds- of continuous-integration-host (CI-host). Een downstreamproject gebruikt het archief dat je produceert. Deze stappen worden nooit op een applicatieserver uitgevoerd.
In een oogopslag
Sectie met titel “In een oogopslag”Je voert drie opdrachten uit. Voer eerst de dry-run uit om te bevestigen dat de pijplijn correct is aangesloten, zonder bestanden te wijzigen. Voer vervolgens een volledige PHP 8.1-build uit. Voer daarna een volledige PHP 7.4-build uit. Elke stap gebruikt één opdracht, ondersteund door een Composer-script of een gedocumenteerde scripts/build.php-aanroep.
Vereisten
Sectie met titel “Vereisten”- Een buildhost op PHP
>=8.4 <9.0, met de buildafhankelijkheden geïnstalleerd (composer install, zonder--no-dev). Zie /integrations/backport/install/. - De bronrepository’s uitgecheckt als gelijkwaardige mappen onder één hoofdmap voor de broncode. De PHP 8.1-build leest
nextpdf,nextpdf-Artisan,nextpdf-compat-legacy,nextpdf-Laravel,nextpdf-Symfony,nextpdf-CodeIgniterennextpdf-Pro(voor Pro). De PHP 7.4-build leest alleennextpdf. Geverifieerd aan de hand vanscripts/merge-sources.php.
Stap 1 — dry-run
Sectie met titel “Stap 1 — dry-run”De dry-run voert elke fase in alleen-rapportagemodus uit. De samenvoegfase toont de bestanden die die zou kopiëren. De opdracht meldt dat Rector zou worden uitgevoerd, maar voert Rector niet uit. De fasen voor Composer-generatie, het kopiëren van assets en validatie tonen hun voorgenomen acties. Er wordt niets weggeschreven. Voer dit als eerste uit, omdat dit de snelste manier is om je broncode-indeling en vlaggen te bevestigen.
composer build:drycomposer build:dry verwijst naar php scripts/build.php --dry-run. Geverifieerd aan de hand van composer.jsonscripts en scripts/build.php (de dryRun-tak in elke fase). Met de standaardvlaggen is het doel php81 en gebruikt de hoofdmap voor de broncode de standaardwaarde van het script. Je kunt beide waarden overschrijven, zoals getoond in stap 2.
Als de dry-run een ontbrekende bronrepository meldt, stopt deze onmiddellijk en noemt die repository. Herstel de broncode-indeling voordat je verdergaat. Zie /integrations/backport/troubleshooting/.
Stap 2 — volledige PHP 8.1-build
Sectie met titel “Stap 2 — volledige PHP 8.1-build”De PHP 8.1-build voert meerdere stappen op volgorde uit. De build voegt core samen met de framework-adapters en de tcpdf-compatibiliteitslaag. De build voert de Rector-configuratie in één doorloop uit. Daarna genereert die nextpdf/backportcomposer.json, kopieert de licentie, schrijft CHANGELOG.md en telt de gegenereerde PHP-bestanden.
php scripts/build.php \ --version=2.0.0 \ --source-dir=/path/to/sources \ --output-dir=./outputGeverifieerd aan de hand van het toegangspunt van de command-line interface (CLI) van scripts/build.php. De vijf fasen worden op volgorde uitgevoerd: bronnen samenvoegen, Rector-downgrade uitvoeren, composer.json genereren, statische assets kopiëren en uitvoer valideren. Elke fase toont een vinkje bij succes. De eerste fase die mislukt, stopt de build en toont de bijbehorende foutmelding. Voeg --no-pro toe om Pro uit te sluiten.
Als de build slaagt, toont de orchestrator de verstreken tijd en het uitvoerpad. Wanneer Pro is opgenomen, toont die ook het Pro-uitvoerpad. De uitvoermap bevat dan src/, tests/, een gegenereerde composer.json die de replace-mapping en de polyfill-vereisten declareert, LICENSE en CHANGELOG.md.
Stap 3 — volledige PHP 7.4-build
Sectie met titel “Stap 3 — volledige PHP 7.4-build”De PHP 7.4-build is alleen voor core en gebruikt de pijplijn met twee doorlopen. De build voert de enum-voorverwerking uit, wist de cache, past de correcties na Rector toe en voert vervolgens de volledige downgrade uit.
php scripts/build.php \ --version=2.0.0 \ --source-dir=/path/to/sources \ --output-dir=./output-php74 \ --target=php74Geverifieerd aan de hand van scripts/build.php. Hiermee dwingt --target=php74 af dat alleen core wordt gebouwd, schakelt Pro uit en laat runRector() het pad met twee doorlopen kiezen. De gegenereerde composer.json bevat de beperking >=7.4 <8.1. Die vervangt alleen nextpdf/core en voegt de PHP 8.0- en 8.1-polyfills toe bovenop de 8.2–8.5-polyfills.
Stap 4 — de uitvoer lezen
Sectie met titel “Stap 4 — de uitvoer lezen”De validatiefase telt de PHP-bestanden in output/src en mislukt als dat aantal nul is. De fase voert lokaal geen syntaxiscontrole uit. De lokale interpreter is de moderne PHP van de buildhost, niet de doelruntime. In plaats daarvan toont de fase de Docker-opdracht om tegen de echte doelruntime te valideren. Geverifieerd aan de hand van scripts/build.php (validateOutput()).
Voer de syntaxiscontrole met de doel-PHP uit om volledig te valideren. De releaseworkflow volgt hetzelfde pad. Die voert een syntaxiscontrole van de uitvoer uit op PHP 8.1 (of PHP 7.4) en installeert en test die vervolgens in de volledige ondersteuningsmatrix. Zie /integrations/backport/production-usage/.
Wat je hebt gebouwd
Sectie met titel “Wat je hebt gebouwd”| Artefact | Gebouwd door | Beperking | Vervangt |
|---|---|---|---|
nextpdf/backport (PHP 8.1) | Stap 2 | >=8.1 <8.5 | core + artisan + laravel + symfony + codeigniter + compat-legacy |
nextpdf/backport-pro (PHP 8.1) | Stap 2, wanneer Pro is opgenomen | >=8.1 <8.5 | nextpdf/pro |
nextpdf/backport (PHP 7.4) | Stap 3 | >=7.4 <8.1 | nextpdf/core |
Geverifieerd aan de hand van scripts/adjust-composer.php.
Volgende stappen
Sectie met titel “Volgende stappen”- /integrations/backport/production-usage/ — Koppel dit aan de event-gestuurde releaseworkflow.
- /integrations/backport/configuration/ — De referentie voor de regels en vlaggen achter deze opdrachten.
- /integrations/backport/troubleshooting/ — Elke fasefout en wat die betekent.