İçeriğe geç

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.

Üç 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.

  • PHP >=8.4 <9.0 üzerinde çalışan, derleme bağımlılıkları kurulmuş bir derleme ana makinesi (composer install, --no-dev olmadan). /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-CodeIgniter ve nextpdf-Pro (Pro için) depolarını okur. PHP 7.4 derlemesi yalnızca nextpdf deposunu okur. scripts/merge-sources.php ile doğrulanmıştır.

Kuru ç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.

Terminal window
composer build:dry

composer 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.

PHP 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.

Terminal window
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.

PHP 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.

Terminal window
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.

Doğ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.

Yapı eseriDerleyenKısıtlamaDeğiştirdiği
nextpdf/backport (PHP 8.1)Adım 2>=8.1 <8.5core + artisan + laravel + symfony + codeigniter + compat-legacy
nextpdf/backport-pro (PHP 8.1)Adım 2, Pro dahil edildiğinde>=8.1 <8.5nextpdf/pro
nextpdf/backport (PHP 7.4)Adım 3>=7.4 <8.1nextpdf/core

Şuna karşı doğrulanmıştır: scripts/adjust-composer.php.

  • /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ı.