Integracja backportu NextPDF
Wyłącznie narzędzie do kompilacji, nie zależność wykonawcza. Opiekunowie projektu używają tego pakietu do tworzenia dystrybucji backportu NextPDF przeznaczonych dla PHP (PHP: Hypertext Preprocessor) 7.4 oraz PHP 8.1. Aplikacje nigdy nie mogą dodawać tego pakietu jako zależności wykonawczej.
W skrócie
Dział zatytułowany „W skrócie”Istnieją dwa odrębne punkty integracji. Repozytorium narzędzia kompilującego jest integrowane z procesem wydawania na hoście kompilacji. Aplikacja docelowa włącza do swojego drzewa zależności wyłącznie wytworzony pakiet nextpdf/backport. Narzędzie kompilujące nigdy nie trafia do drzewa zależności aplikacji.
Instalacja (tylko hosty kompilacji)
Dział zatytułowany „Instalacja (tylko hosty kompilacji)”Ponieważ narzędzie kompilujące deklaruje "type": "project" w pliku composer.json, traktuj je jako repozytorium projektu, a nie bibliotekę. Integruj je przez sklonowanie repozytorium i uruchomienie instalacji deweloperskiej, a nie poleceniem composer require:
git clone https://github.com/nextpdf-labs/backport.gitcd backportgit checkout PHP74composer install --prefer-dist --no-progressPrzełącz się na gałąź odpowiadającą celowi kompilacji. Użyj PHP74 (wartość domyślna) dla dystrybucji PHP 7.4 zawierającej tylko rdzeń. Użyj PHP81 dla dystrybucji PHP 8.1 ze wszystkimi adapterami. Nie przekazuj --no-dev. Kompilacja wymaga silnika Rector, PHPStan i PHPUnit; są to zależności deweloperskie. Zweryfikowano na podstawie composer.json (type, require-dev) oraz modelu dwóch gałęzi w /integrations/backport/overview/.
Rozruch i automatyczne wykrywanie
Dział zatytułowany „Rozruch i automatyczne wykrywanie”Narzędzie kompilujące nie ma mechanizmu automatycznego wykrywania we frameworkach. Podczas kompilacji scripts/build.php wczytuje Rector oraz trzy niestandardowe reguły dla abstrakcyjnego drzewa składni przez jawne wywołania require_once oraz autoładowanie Composer zgodne z PHP Standards Recommendation 4 (PSR-4). Pełna sekwencja rozruchu oraz wykrywanie modułów źródłowych są opisane w /integrations/backport/boot-and-discovery/.
Powiązania kontenera
Dział zatytułowany „Powiązania kontenera”Nie dotyczy. Narzędzie kompilujące jest narzędziem wiersza poleceń (CLI) i nie używa kontenera wstrzykiwania zależności. Zweryfikowano na podstawie struktury repozytorium oraz composer.jsonautoload.
Konfiguracja publikowania
Dział zatytułowany „Konfiguracja publikowania”„Konfiguracja publikowania” nie jest oddzielnym plikiem. To zestaw flag kompilacji oraz stałych definicji pakietów w pliku scripts/adjust-composer.php:
- Mapa celów.
--target=php81wytwarzanextpdf/backport(ograniczenie>=8.1 <8.5, zastępuje rdzeń, adaptery oraz compat-legacy) oraz, jeśli jest dołączony,nextpdf/backport-pro.--target=php74wytwarzanextpdf/backport(ograniczenie>=7.4 <8.1, zastępuje tylkonextpdf/core) bez wersji Pro. - Wykluczenie.
--no-prowyklucza pakiet Pro dla celu PHP 8.1. Zgodnie z założeniami cel PHP 7.4 wyklucza wersję Pro oraz wszystkie adaptery. - Wersja. Kompilacja zapisuje wartość
--version(lub etykietę wydania po usunięciu początkowegov) do wygenerowanych plikówcomposer.jsonorazCHANGELOG.md.
To zachowanie zweryfikowano na podstawie scripts/build.php oraz scripts/adjust-composer.php (generatePublicComposer(), generateProComposer(), buildReplace()). Pełny opis flag znajduje się w /integrations/backport/configuration/.
Integracja z procesem wydawania
Dział zatytułowany „Integracja z procesem wydawania”Narzędzie kompilujące jest włączane do procesu wydawania przez przepływy pracy GitHub Actions w .github/workflows/. Dla każdej zmiany w każdej stałej gałęzi 0-ci.yml uruchamia bramkę obejmującą PHPStan, testy reguł oraz przebieg próbny. build.yml buduje i publikuje dystrybucję po otrzymaniu zdarzenia repository-dispatch source-release lub po ręcznym uruchomieniu. Pełny model działania — wyzwalacze, tory, macierz walidacji oraz wspólne wydanie — opisano w /integrations/backport/production-usage/.
Test dymny wykorzystania wyniku
Dział zatytułowany „Test dymny wykorzystania wyniku”Potok wydawania pełni rolę testu dymnego integracji. Po zakończeniu kompilacji przepływ pracy przełącza środowisko uruchomieniowe na docelową wersję PHP i uruchamia php -l na całym wygenerowanym kodzie źródłowym. Następnie instaluje i testuje wytworzony pakiet w całej macierzy walidacji (PHP 8.1–8.4 dla toru PHP 8.1, PHP 7.4 i 8.0 dla toru PHP 7.4). Dystrybucja odrzucona przez docelowe środowisko uruchomieniowe nie trafia do wydania. Zweryfikowano na podstawie .github/workflows/build.yml (zadań sprawdzania składni oraz validate-*). Lokalnie wytworzony wynik możesz poddać temu samemu testowi dymnemu za pomocą polecenia Docker wypisywanego przez etap walidacji — zobacz /integrations/backport/quickstart/.
Publiczne punkty wejścia
Dział zatytułowany „Publiczne punkty wejścia”Publiczną powierzchnię narzędzia kompilującego stanowi orkiestrator CLI oraz jego aliasy skryptów Composer, a nie plik wykonywalny bin/.
| Punkt wejścia | Mapuje się na | Przeznaczenie |
|---|---|---|
composer build | php scripts/build.php | Uruchom pełną kompilację |
composer build:dry | php scripts/build.php --dry-run | Uruchom próbną kompilację |
composer test | phpunit | Uruchom zestawy testów reguł na danych próbnych |
composer analyse | phpstan analyse rector/rules scripts --level=10 | Przeanalizuj kod kompilacji |
Zweryfikowano na podstawie composer.jsonscripts. Pakiet docelowy udostępnia oryginalne symbole interfejsu programowania aplikacji (API) NextPDF\, bez zmian wprowadzanych przez backport. Pakiet zastępuje pakiety źródłowe i automatycznie ładuje scalone drzewo przez pojedynczy prefiks PSR-4.
Zobacz także
Dział zatytułowany „Zobacz także”- /integrations/backport/overview/ — czym jest narzędzie kompilujące i co wytwarza.
- /integrations/backport/boot-and-discovery/ — sekwencja rozruchu i wykrywanie źródeł.
- /integrations/backport/install/ — instalacja na hoście kompilacji oraz instalacja docelowa.
- /integrations/backport/production-usage/ — potok wydawania.