İçeriğe geç

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.

İ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-builder yalnızca bu bağlamda kurulur.
  • Daha eski bir PHP çalışma zamanında çalışan bir alt katman uygulaması, üretilen nextpdf/backport paketini 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.

BağımlılıkKısıtDoğrulama kaynağı
PHP>=8.4 <9.0composer.jsonrequire.php
Composer2.6+CONTRIBUTING.md ortam tablosu
rector/rector^2.0composer.jsonrequire-dev
phpstan/phpstan^2.1composer.jsonrequire-dev
phpunit/phpunit^13.0composer.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.

  1. Depoyu klonlayın, ardından derlemek istediğiniz hedefe ait dala geçin. PHP74 varsayı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.git
    cd backport
    git checkout PHP74
  2. Derleme bağımlılıklarını kurun. --no-dev bayrağını kullanmayın: Rector motoru, PHPStan ve PHPUnit require-dev içinde yer alır ve derleme bunlar olmadan çalışamaz.

    Terminal window
    composer install --prefer-dist --no-progress
  3. Araç zincirinin doğru çözümlendiğini doğrulayın. analyse betiği, PHPStan’i rector/rules ve scripts ü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
  4. 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.

Derleme, 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.

Daha eski bir PHP çalışma zamanında çalışan bir projeyi desteklediğinizde, bu builder’ı değil üretilen dağıtımı kurun.

Terminal window
composer require nextpdf/backport

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

Terminal window
composer require nextpdf/backport

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

Terminal window
composer require nextpdf/backport-pro

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

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