NextPDF Backport Builder için hızlı başlangıç
Derleme araçları çalışma zamanı bağımlılığı değildir. Bu adım adım kılavuzu bir bakımcı makinesinde veya sürekli entegrasyon (CI) ana makinesinde çalıştırın. Ürettiğiniz arşiv, alt akıştaki bir proje tarafından kullanılır. Bu adımlar hiçbir zaman bir uygulama sunucusunda çalıştırılmaz.
Bir bakışta
“Bir bakışta” başlıklı bölümÜç komut çalıştırırsınız. Önce dosyalara dokunmadan işlem hattının doğru bağlandığını doğrulamak için kuru çalıştırma yapın. Ardından eksiksiz bir PHP 8.1 derlemesi çalıştırın. Sonrasında eksiksiz bir PHP 7.4 derlemesi çalıştırın. Her adımda, bir Composer betiği veya belgelenmiş bir scripts/build.php çağrısı tarafından desteklenen tek bir komut kullanılır.
Ön koşullar
“Ön koşullar” başlıklı bölüm- PHP
>=8.4 <9.0üzerinde çalışan, derleme bağımlılıkları kurulmuş bir derleme ana makinesi (composer install,--no-devolmadan). /integrations/backport/install/. sayfasına bakın. - Kaynak depoları, tek bir kaynak kökü altında kardeş dizinler halinde checkout edilmiş olmalıdır. PHP 8.1 derlemesi
nextpdf,nextpdf-Artisan,nextpdf-compat-legacy,nextpdf-Laravel,nextpdf-Symfony,nextpdf-CodeIgnitervenextpdf-Pro(Pro için) depolarını okur. PHP 7.4 derlemesi yalnızcanextpdfdeposunu okur.scripts/merge-sources.phpile doğrulanmıştır.
Adım 1 — kuru çalıştırma
“Adım 1 — kuru çalıştırma” başlıklı bölümKuru çalıştırma, her aşamayı yalnızca raporlama modunda çalıştırır. Birleştirme aşaması kopyalayacağı dosyaları listeler. Komut, Rector aşamasını bildirir ancak çalıştırmaz. Composer oluşturma, varlık kopyalama ve doğrulama aşamaları yapmayı planladıkları işlemleri yazdırır. Hiçbir şey yazılmaz. Kaynak yerleşiminizi ve bayraklarınızı doğrulamanın en hızlı yolu olduğu için bunu önce çalıştırın.
composer build:drycomposer build:dry komutu php scripts/build.php --dry-run komutuna karşılık gelir. composer.jsonscripts ve scripts/build.php ile doğrulanmıştır (her aşamadaki dryRun dalı). Varsayılan bayraklarla hedef php81 olur; kaynak kökü için de betiğin varsayılan değeri kullanılır. Adım 2’de gösterildiği gibi her iki değeri de geçersiz kılabilirsiniz.
Eksik bir kaynak deposu bildirirse kuru çalıştırma hemen durur ve o deponun adını belirtir. Devam etmeden önce kaynak yerleşimini düzeltin. /integrations/backport/troubleshooting/. sayfasına bakın.
Adım 2 — eksiksiz PHP 8.1 derlemesi
“Adım 2 — eksiksiz PHP 8.1 derlemesi” başlıklı bölümPHP 8.1 derlemesi birkaç adımı sırayla çalıştırır. Çekirdeği çerçeve bağdaştırıcıları ve tcpdf uyumluluk katmanıyla birleştirir. Tek geçişli Rector yapılandırmasını çalıştırır. nextpdf/backportcomposer.json dosyasını oluşturur. Lisansı kopyalar, CHANGELOG.md dosyasını yazar ve oluşturulan PHP dosyalarını sayar.
php scripts/build.php \ --version=2.0.0 \ --source-dir=/path/to/sources \ --output-dir=./outputŞuna karşı doğrulanmıştır: scripts/build.php komut satırı arabirimi (CLI) giriş noktası. Beş aşama sırayla çalışır: kaynakları birleştir, Rector ile sürüm düşürmeyi çalıştır, composer.json oluştur, statik varlıkları kopyala, çıktıyı doğrula. Her aşama başarılı olduğunda bir onay işareti yazdırır. Başarısız olan ilk aşama derlemeyi durdurur ve hatasını yazdırır. Pro’yu hariç tutmak için --no-pro ekleyin.
Derleme başarılı olduğunda, derleme aracı geçen süreyi ve çıktı yolunu yazdırır. Pro dahil edildiğinde, Pro çıktı yolunu da yazdırır. Bundan sonra çıktı dizini src/, tests/, oluşturulmuş bir composer.json (replace eşlemesini ve polyfill gereksinimlerini bildirir), LICENSE ve CHANGELOG.md içerir.
Adım 3 — eksiksiz PHP 7.4 derlemesi
“Adım 3 — eksiksiz PHP 7.4 derlemesi” başlıklı bölümPHP 7.4 derlemesi yalnızca çekirdeği içerir ve iki geçişli işlem hattını kullanır. Enum ön işlemeyi çalıştırır, önbelleği temizler, Rector sonrası düzeltmeleri uygular ve ardından tam sürüm düşürmesini gerçekleştirir.
php scripts/build.php \ --version=2.0.0 \ --source-dir=/path/to/sources \ --output-dir=./output-php74 \ --target=php74Şuna karşı doğrulanmıştır: scripts/build.php. Burada --target=php74 yalnızca çekirdeğin kullanılmasını zorunlu kılar, Pro’yu devre dışı bırakır ve runRector() işlevinin iki geçişli yolu seçmesini sağlar. Oluşturulan composer.json dosyası >=7.4 <8.1 kısıtlamasını taşır. Yalnızca nextpdf/core paketini değiştirir ve 8.2–8.5 polyfill’lerinin üzerine PHP 8.0 ve 8.1 polyfill’lerini ekler.
Adım 4 — çıktıyı okuyun
“Adım 4 — çıktıyı okuyun” başlıklı bölümDoğrulama aşaması, output/src içindeki PHP dosyalarını sayar ve sayı sıfırsa başarısız olur. Yerel olarak bir söz dizimi denetimi çalıştırmaz. Yerel yorumlayıcı hedef çalışma zamanı değil, derleme ana makinesinin modern PHP’sidir. Bunun yerine, gerçek hedef çalışma zamanında doğrulama yapmak için Docker komutunu yazdırır. scripts/build.php ile doğrulanmıştır (validateOutput()).
Tam olarak doğrulamak için söz dizimi denetimini hedef PHP üzerinde çalıştırın. Yayın iş akışı aynı yolu izler. Çıktının söz dizimini PHP 8.1 (veya PHP 7.4) üzerinde denetler, ardından destek matrisinin tamamında kurulum yapıp çalıştırır. /integrations/backport/production-usage/. sayfasına bakın.
Neyi derlediniz
“Neyi derlediniz” başlıklı bölüm| Yapı eseri | Derleyen | Kısıtlama | Değiştirdiği |
|---|---|---|---|
nextpdf/backport (PHP 8.1) | Adım 2 | >=8.1 <8.5 | core + artisan + laravel + symfony + codeigniter + compat-legacy |
nextpdf/backport-pro (PHP 8.1) | Adım 2, Pro dahil edildiğinde | >=8.1 <8.5 | nextpdf/pro |
nextpdf/backport (PHP 7.4) | Adım 3 | >=7.4 <8.1 | nextpdf/core |
Şuna karşı doğrulanmıştır: scripts/adjust-composer.php.
Sonraki adımlar
“Sonraki adımlar” başlıklı bölüm- /integrations/backport/production-usage/ — Bunu olay güdümlü yayın iş akışına bağlayın.
- /integrations/backport/configuration/ — bu komutların ardındaki kural ve bayrak başvurusu.
- /integrations/backport/troubleshooting/ — her aşama hatası ve bunun anlamı.