NextPDF backport entegrasyonu
Yalnızca derleme araçları içindir; çalışma zamanı bağımlılığı değildir. Geliştiriciler bu paketi, NextPDF’in PHP (PHP: Hypertext Preprocessor) 7.4 ve PHP 8.1 backport dağıtımlarını üretmek için kullanır. Uygulamalar bu paketi hiçbir zaman çalışma zamanı bağımlılığı olarak eklememelidir.
Bir bakışta
“Bir bakışta” başlıklı bölümİki ayrı entegrasyon noktası vardır. Oluşturucu deposunu derleme ana makinesi üzerindeki yayım akışına entegre edersiniz. Bir alt akış uygulaması ise kendi bağımlılık ağacına yalnızca üretilen nextpdf/backport paketini entegre eder. Oluşturucu hiçbir zaman bir uygulamanın bağımlılık ağacına girmez.
Kurulum (yalnızca derleme ana makineleri)
“Kurulum (yalnızca derleme ana makineleri)” başlıklı bölümOluşturucu "type": "project" değerini composer.json dosyasında bildirdiği için onu kitaplık değil, proje deposu olarak ele alın. composer require kullanmak yerine depoyu klonlayıp bir geliştirme kurulumu çalıştırarak entegre edin:
git clone https://github.com/nextpdf-labs/backport.gitcd backportgit checkout PHP74composer install --prefer-dist --no-progressÜretmeyi planladığınız hedef için ilgili dala geçin. Yalnızca çekirdek içeren PHP 7.4 dağıtımı için PHP74 (varsayılan) dalını kullanın. Tüm bağdaştırıcıları içeren PHP 8.1 dağıtımı için PHP81 dalını kullanın. --no-dev bayrağını kullanmayın. Derleme, Rector motorunu, PHPStan’i ve PHPUnit’i gerektirir; bunlar geliştirme bağımlılıklarıdır. Bu bilgi, composer.json (type, require-dev) dosyası ve /integrations/backport/overview/ içindeki çift dal modeliyle doğrulanmıştır.
Başlatma ve otomatik keşif
“Başlatma ve otomatik keşif” başlıklı bölümOluşturucuda çerçeve otomatik keşfi yoktur. Derleme sırasında scripts/build.php, Rector’ı ve üç özel soyut sözdizimi ağacı kuralını açık require_once çağrılarıyla ve Composer PHP Standards Recommendation 4 (PSR-4) otomatik yüklemesiyle yükler. Tam başlatma sırası ve kaynak modül keşfi /integrations/backport/boot-and-discovery/ içinde belgelenmiştir.
Konteyner bağlamaları
“Konteyner bağlamaları” başlıklı bölümUygulanamaz. Oluşturucu, bağımlılık enjeksiyonu konteyneri kullanmayan bir komut satırı arayüzü (CLI) aracıdır. Depo yapısı ve composer.jsonautoload ifadesiyle doğrulanmıştır.
Yayımlama yapılandırması
“Yayımlama yapılandırması” başlıklı bölüm“Yayımlama yapılandırması” ayrı bir dosya değildir; derleme bayrakları kümesinden ve scripts/adjust-composer.php içindeki sabit paket tanımlarından oluşur:
- Hedef eşlemesi.
--target=php81,nextpdf/backport(kısıt>=8.1 <8.5; çekirdeği, bağdaştırıcıları ve compat-legacy’yi değiştirir) ve dahil edildiğindenextpdf/backport-proüretir.--target=php74isenextpdf/backport(kısıt>=7.4 <8.1; yalnızcanextpdf/corepaketini değiştirir) üretir ve Pro içermez. - Hariç tutma.
--no-pro, PHP 8.1 hedefinde Pro paketini hariç tutar. PHP 7.4 hedefi yapısı gereği Pro’yu ve tüm bağdaştırıcıları hariç tutar. - Sürüm. Derleme,
--versiondeğerini (veya baştakivharfi çıkarıldıktan sonra yayım etiketini) oluşturulancomposer.jsonveCHANGELOG.mddosyalarına yazar.
Bu davranış, scripts/build.php ve scripts/adjust-composer.php (generatePublicComposer(), generateProComposer(), buildReplace()) dosyalarıyla doğrulanmıştır. Tam bayrak başvurusu /integrations/backport/configuration/ içindedir.
Yayım akışı entegrasyonu
“Yayım akışı entegrasyonu” başlıklı bölümOluşturucuyu, .github/workflows/ içindeki GitHub Actions iş akışlarıyla bir yayım akışına entegre edersiniz. 0-ci.yml, kalıcı dallara gelen her değişikliği PHPStan, kural testleri ve kuru çalıştırma ile denetler. build.yml, bir source-release repository-dispatch olayı aldığında veya elle tetiklendiğinde dağıtımı üretir ve yayımlar. Tam işletim modeli — tetikleyiciler, şeritler, doğrulama matrisi ve paylaşılan yayım — /integrations/backport/production-usage/ içinde belgelenmiştir.
Çıktı tüketimi duman testi
“Çıktı tüketimi duman testi” başlıklı bölümYayım hattının kendisi entegrasyon duman testidir. Derleme tamamlandıktan sonra iş akışı, çalıştırıcıyı hedef PHP’ye geçirir ve üretilen kaynağın tamamında php -l çalıştırır. Ardından üretilen paketi doğrulama matrisi boyunca kurar ve sınar (PHP 8.1 şeridi için PHP 8.1–8.4, PHP 7.4 şeridi için PHP 7.4 ve 8.0). Bir hedef çalışma zamanının reddettiği dağıtım yayıma ulaşmaz. Bu, .github/workflows/build.yml dosyasıyla (söz dizimi denetimi ve validate-* işleri) doğrulanmıştır. Yerel olarak üretilen çıktıyı da doğrulama aşamasının yazdırdığı Docker komutuyla aynı şekilde duman testinden geçirebilirsiniz; bkz. /integrations/backport/quickstart/.
Genel giriş noktaları
“Genel giriş noktaları” başlıklı bölümOluşturucunun genel yüzeyi bir bin/ yürütülebilir dosyası değil, CLI düzenleyicisi ve onun Composer betik takma adlarıdır.
| Giriş noktası | Çözümlendiği değer | Amaç |
|---|---|---|
composer build | php scripts/build.php | Tam derlemeyi çalıştırın |
composer build:dry | php scripts/build.php --dry-run | Kuru çalıştırma derlemesi çalıştırın |
composer test | phpunit | Kural düzeneği test takımlarını çalıştırın |
composer analyse | phpstan analyse rector/rules scripts --level=10 | Derleme kodunu çözümleyin |
Bu tablo composer.jsonscripts ile doğrulanmıştır. Alt akış paketi, özgün NextPDF\ uygulama programlama arayüzü (API) sembollerini backport tarafından değiştirilmeden açığa çıkarır. Paket, kaynak paketlerin yerini alır ve birleştirilmiş ağacı tek bir PSR-4 önekiyle otomatik yükler.
Ayrıca bakınız
“Ayrıca bakınız” başlıklı bölüm- /integrations/backport/overview/ — oluşturucunun ne olduğu ve ne ürettiği.
- /integrations/backport/boot-and-discovery/ — başlatma sırası ve kaynak keşfi.
- /integrations/backport/install/ — derleme ana makinesi ve alt akış kurulumu.
- /integrations/backport/production-usage/ — yayım hattı.