NextPDF Backport Builder kurulumu
Bu derleme araçlarını bir bakımcı iş istasyonuna veya sürekli tümleştirme (CI) çalıştırıcısına kurun. Bu, çalışma zamanı bağımlılığı DEĞİLDİR. Alt katmandaki bir uygulama builder’ı asla kurmaz; yalnızca builder’ın ürettiği paketi kurar.
Bir bakışta
“Bir bakışta” başlıklı bölümİki farklı kullanıcı grubu farklı şeyler kurar:
- Bir bakımcı veya CI operatörü bu depoyu klonlar ve derleme bağımlılıklarını kurar.
nextpdf/backport-builderyalnızca bu bağlamda kurulur. - Daha eski bir PHP çalışma zamanında çalışan bir alt katman uygulaması, üretilen
nextpdf/backportpaketini sürüm kanalından kurar. Bu depoya asla dokunmaz.
Bu sayfa her iki iş akışını da kapsar. Rolünüze uygun bölümü okuyun.
Derleme ana makinesi kurulumu
“Derleme ana makinesi kurulumu” başlıklı bölümGereksinimler
“Gereksinimler” başlıklı bölüm| Bağımlılık | Kısıt | Doğrulama kaynağı |
|---|---|---|
| PHP | >=8.4 <9.0 | composer.jsonrequire.php |
| Composer | 2.6+ | CONTRIBUTING.md ortam tablosu |
rector/rector | ^2.0 | composer.jsonrequire-dev |
phpstan/phpstan | ^2.1 | composer.jsonrequire-dev |
phpunit/phpunit | ^13.0 | composer.jsonrequire-dev |
CI iş akışı hem derleme hem de kuru çalıştırma işleri için PHP 8.5 sağlar. >=8.4 <9.0 aralığında bir PHP sürümü çalıştıran herhangi bir derleme ana makinesi Composer kısıtlamasını karşılar. PHP ayrıştırıcısının, kaynağın kullandığı en yeni söz dizimini kabul etmesi gerekir. .github/workflows/0-ci.yml dosyasına göre doğrulanmıştır.
Adımlar
“Adımlar” başlıklı bölüm-
Depoyu klonlayın, ardından derlemek istediğiniz hedefe ait dala geçin.
PHP74varsayılan daldır ve yalnızca çekirdeği içeren PHP 7.4 dağıtımını üretir.PHP81, tüm bağdaştırıcıları içeren PHP 8.1 dağıtımını üretir.Terminal window git clone https://github.com/nextpdf-labs/backport.gitcd backportgit checkout PHP74 -
Derleme bağımlılıklarını kurun.
--no-devbayrağını kullanmayın: Rector motoru, PHPStan ve PHPUnitrequire-deviçinde yer alır ve derleme bunlar olmadan çalışamaz.Terminal window composer install --prefer-dist --no-progress -
Araç zincirinin doğru çözümlendiğini doğrulayın.
analysebetiği, PHPStan’irector/rulesvescriptsüzerinde 10. düzeyde çalıştırır. Sorunsuz tamamlanan bir çalıştırma, çıktı üretmeden önce derleme kodunun kendisinin sağlam olduğunu gösterir.Terminal window composer analyse -
Kural fikstür testlerini çalıştırın. Her özel Rector kuralı, tam before/after dönüşümünü doğrulayan bir fikstür test takımına sahiptir.
Terminal window composer test
Adım 4’ten sonra ana makine derlemeye hazırdır. Kuru çalıştırma ve tam derleme çağrıları için /integrations/backport/quickstart/ sayfasına bakın.
Kaynak ağacı beklentisi
“Kaynak ağacı beklentisi” başlıklı bölümDerleme, birkaç kaynak deposunu tek bir ağaçta birleştirir. Bunları tek bir kaynak kökü altında kardeş dizinler olarak konumlandırın; birleştirme betiği her dizine adıyla erişir. PHP 8.1 hedefi için nextpdf (çekirdek), nextpdf-Artisan, nextpdf-compat-legacy, nextpdf-Laravel, nextpdf-Symfony, nextpdf-CodeIgniter ve Pro dahilse nextpdf-Pro dizinlerini okur. PHP 7.4 hedefi için yalnızca nextpdf dizinini okur. scripts/merge-sources.php (MergeSources::__construct()) dosyasına göre doğrulanmıştır. Kaynak kökünü --source-dir ile belirtin. Bayrak başvurusu için /integrations/backport/configuration/ sayfasına bakın.
Üretilen paketin alt katmanda kullanımı
“Üretilen paketin alt katmanda kullanımı” başlıklı bölümDaha eski bir PHP çalışma zamanında çalışan bir projeyi desteklediğinizde, bu builder’ı değil üretilen dağıtımı kurun.
PHP 8.1 ile 8.3 arası
“PHP 8.1 ile 8.3 arası” başlıklı bölümcomposer require nextpdf/backportKurulan paket >=8.1 <8.5 kısıtını bildirir ve nextpdf/core, nextpdf/artisan, nextpdf/laravel, nextpdf/symfony, nextpdf/codeigniter ve nextpdf/compat-legacy paketlerinin yerini alır. Uygulama kodu NextPDF\ ad alanını değiştirmeden içe aktarmaya devam eder. Paket, birleştirilmiş ağacı tek bir PHP Standart Önerisi 4 (PSR-4) ön eki olan NextPDF\ üzerinden src/ dizinine eşlenmiş şekilde otomatik yükler. Bir PSR-4 otomatik yükleyicisi, göreli sınıf adını ön ek için kayıtlı bir taban dizine ekler (PHP-FIG PSR-4). scripts/adjust-composer.php (buildPublicAutoloadMap(), buildReplace()) dosyasına göre doğrulanmıştır.
PHP 7.4 ile 8.0 arası
“PHP 7.4 ile 8.0 arası” başlıklı bölümcomposer require nextpdf/backportPHP 7.4 dağıtımı yalnızca çekirdek içerir. >=7.4 <8.1 kısıtını bildirir ve yalnızca nextpdf/core paketinin yerini alır. Çerçeve bağdaştırıcıları, tcpdf uyumluluk katmanı ve Pro, PHP 7.4 dağıtımına dahil edilmez. scripts/adjust-composer.php ve scripts/build.php dosyalarına göre doğrulanmıştır (PHP 7.4 hedefi yalnızca çekirdeği zorunlu kılar). Bir çerçeve bağdaştırıcısı gerektiren bir proje, PHP 8.1 veya daha yeni bir sürüme gereksinim duyar.
composer require nextpdf/backport-proPro dağıtımı, nextpdf/backport-pro adlı, proprietary lisansına sahip ayrı bir pakettir. Eşleşen major.minor sürümünde nextpdf/backport paketini gerektirir ve phpseclib/phpseclib ^3.0 ekler. Yalnızca PHP 8.1 hedefi için üretilir. scripts/adjust-composer.php (generateProComposer()) dosyasına göre doğrulanmıştır.
PHP 7.4 dağıtımı ile Pro dağıtımı birbirini dışlar: derleme betiğinin yapısı nedeniyle PHP 7.4 Pro derlemesi yoktur.
Üretilen paketteki polyfill’ler
“Üretilen paketteki polyfill’ler” başlıklı bölümÜretilen composer.json, daha yeni standart kitaplık işlevlerinin hedef çalışma zamanında çözümlenebilmesi için symfony/polyfill-* paketlerini gerektirir. PHP 8.1 hedefi, PHP 8.2 ile 8.5 arasına yönelik polyfill’ler gerektirir. PHP 7.4 hedefi ayrıca PHP 8.0 ve 8.1 polyfill’lerini de gerektirir. Bunlar builder’ın değil, üretilen paketin çalışma zamanı bağımlılıklarıdır. scripts/adjust-composer.php (generatePublicComposer()) dosyasına göre doğrulanmıştır.
Sonraki adımlar
“Sonraki adımlar” başlıklı bölüm- /integrations/backport/configuration/ — Rector yapılandırması, özel kurallar ve derleme bayrağı başvurusu.
- /integrations/backport/quickstart/ — ilk kuru çalıştırmanız ve tam derlemeniz.