İçeriğe geç
getnextpdf.com

Enterprise sürüm

PHPStan

NextPDF Enterprise, Core → Pro → Enterprise sürüm sınırını aşan use içe aktarmalarını işaretleyen özel bir PHPStan kuralı olan EditionBoundaryRule’u sunar. İhlalleri raporlayan, geliştiriciye yönelik statik bir denetimdir; içe-aktarma deyimlerini çözümler ve kodunuzun doğruluğunu garanti etmez.

Bu yetenek NextPDF Enterprise (nextpdf/enterprise) içinde sunulur ve Enterprise katmanlı bir lisans zarfıyla etkinleşir. PHPStan yapılandırmanız üzerinden kaydedilen bir derleme-zamanı PHPStan kuralıdır; dolayısıyla statik çözümleme sırasında çalışır ve hiçbir çalışma zamanı yolu yoktur; lisans geçidi, özellik başına ayrı bir yetenek kodu olmaksızın nextpdf/enterprise paket sınırıdır. Sürümleri karşılaştırın ve lisans alın.

Terminal window
composer require nextpdf/enterprise:^3

Kuralı PHPStan yapılandırmanızda kaydedin:

rules:
- NextPDF\Enterprise\PHPStan\EditionBoundaryRule

Kural, her use deyimini inceler ve içe aktaran ad alanını, içe aktarılan sembolün ad alanı önekiyle karşılaştırır. Tek yönlü bir bağımlılık sırasını zorunlu kılar:

  • Core kodu (NextPDF\, Pro ve Enterprise alt ad alanları hariç), NextPDF\Pro\* veya NextPDF\Enterprise\* içinden içe aktarmamalıdır.
  • Pro kodu (NextPDF\Pro\*), NextPDF\Enterprise\* içinden içe aktarmamalıdır.
  • Enterprise kodu (NextPDF\Enterprise\*), en üst katmandır ve bunların herhangi birinden içe aktarabilir.

Bir içe aktarma sınırı aştığında, kural nextpdf.editionBoundaryViolation tanımlayıcısıyla ve içe aktaran ad alanını, yasaklı öneki ve insan tarafından okunabilir sürüm etiketlerini adlandıran bir mesajla bir hata raporlar. Denetim tamamen statiktir: çözümleme zamanında içe-aktarma grafiğini okur.

Kural, use deyimleri hakkında çalışma zamanında değil çözümleme zamanında akıl yürütür; çünkü sürüm sınırı, bir çalışma zamanı kararından ziyade mimari bir değişmezdir. Core, Pro ve Enterprise ayrı paketler olarak sunulur; dolayısıyla daha alt bir katman, daha küçük bir kurulumda bulunmayan sembollere asla bağımlı olmamalıdır. Sınırı aşan bir içe aktarmayı statik çözümleme sırasında yakalamak, hata gönderilmeden önce derlemeyi başarısız kılar. Alternatifi daha kötüdür: aynı içe aktarma, daha sonra yalnızca Core’lu bir dağıtımda ölümcül bir eksik-sınıf hatası olarak ortaya çıkar. Sıra kasıtlı olarak tek yönlüdür, Core → Pro → Enterprise; açık çekirdek paketlerinin birbirinin üzerine nasıl katmanlandığını yansıtır. Enterprise kısıtlamasız kalır çünkü en üst katmandır ve altındaki her sürüme başvurabilir.

Tasarım arka planı: Açık çekirdek, kilitlenme yok.

SınıfSorumluluk
EditionBoundaryRuleuse deyimleri üzerinde PHPStan kuralı; sürüm-sınırı ihlallerini raporlar.

Kural, Use_ düğüm türü üzerinde standart PHPStan Rule sözleşmesini uygular ve hataları nextpdf.editionBoundaryViolation tanımlayıcısı altında yayar.

# phpstan.neon
includes:
- vendor/nextpdf/enterprise/phpstan.neon.dist
# phpstan.neon
rules:
- NextPDF\Enterprise\PHPStan\EditionBoundaryRule
parameters:
level: 9
paths:
- src

Bir ihlal PHPStan çıktısında şöyle görünür: örneğin, Core kodu içindeki bir Enterprise içe aktarması, ihlal eden use satırında, nextpdf.editionBoundaryViolation altında bir sürüm-sınırı ihlali olarak raporlanır.

  • Kural, çözümlenen dosyanın ad alanı ve içe aktarılan sembolün öneki hakkında akıl yürütür. NextPDF\ olmayan bir ad alanındaki kod, bu kuralla kısıtlanmaz.
  • Enterprise ad alanları tasarım gereği kısıtlamasızdır; kural, bir Enterprise dosyasını Pro veya Core içe aktardığı için asla işaretlemez.
  • Kural, use deyimlerini çözümler. use olmadan satır içinde yazılmış, tam nitelikli bir sınıf başvurusu bu kuralın kapsamı dışındadır; sınırın zorunlu kılınması için içe aktarmaları tercih edin.
  • Denetim statik ve önericidir: sınır ihlallerini raporlar. Programınızın aksi takdirde doğru olduğunu kanıtlamaz.

Kural, PHPStan çözümlemesi sırasında her use deyimi başına çalışır ve dize-öneki karşılaştırmaları yapar. Yükü, içe-aktarma deyimlerinin sayısıyla orantılıdır ve genel çözümleme süresine göre ihmal edilebilir düzeydedir.

Bu, bir statik-çözümleme kuralıdır. PHPStan içinde derleme zamanında yürütülür, yalnızca kaynak yapısını okur ve üretilen PDF’ler üzerinde hiçbir çalışma zamanı etkisi yoktur.

Kural, çözümleme zamanında kaynak kodu işler ve hiçbir belge veya kişisel veri işlemez.

Kural çıktısı PHPStan tanılamalarıdır. Kendi kodunuzdan ad alanları ve sembol adları içerir; çözümleme günlüklerine kaynağınızla aynı özeni gösterin.

Hiçbir standart uygunluğu iddia edilmez. Bu, aşağı akış derlemelerinde dahilî bir mimari kısıtlamayı (sürüm katmanlaması) zorunlu kılan bir geliştirici aracı kuralıdır.

Uygulanamaz; kural hiçbir kriptografik işlem yapmaz ve hiçbir çalışma zamanı yolu yoktur.

Bir çalışma zamanı bileşeni değildir. Kuralın amacı, statik-çözümleme aşamasını başarısız kılarak, bir mimari hatayı — bir sürüm-sınırı içe aktarması — gönderilmeden önce yakalamaktır.

  • Kural, her use deyimini inceler ve tek yönlü bir bağımlılık sırasını zorunlu kılar: Core, Pro veya Enterprise içe aktarmamalıdır; Pro, Enterprise içe aktarmamalıdır; Enterprise herhangi birini içe aktarabilir.
  • Sınırı aşan bir içe aktarma, içe aktaran ad alanı ve yasaklı önekle birlikte nextpdf.editionBoundaryViolation tanımlayıcısı altında raporlanır.
  • NextPDF\ olmayan bir ad alanındaki kod, bu kuralla kısıtlanmaz.
  • use olmadan tam nitelikli satır içi bir sınıf başvurusu bu kuralın kapsamı dışındadır; sınırın zorunlu kılınması için içe aktarmaları tercih edin.

Bu sayfa yalnızca dışarıdan gözlemlenebilir davranışı ve desteklenen herkese açık API yüzeyini belgeler. Dahilî ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.

NextPDF Core, bir sürüm-sınırı PHPStan kuralı sunmaz. Kendi derlemesinde sürüm katmanlamasının zorunlu kılınmasını isteyen, yalnızca Core’lu bir tüketici, eşdeğer bir kuralı kendisi yazmalı veya temin etmelidir.

NextPDF Pro, sürüm-sınırı PHPStan kuralını sunmaz; yalnızca nextpdf/enterprise paketinin parçasıdır. Yalnızca Pro’lu bir dağıtımın bu kuralı kaydedeceği hiçbir Enterprise bileşeni yoktur. Enterprise yüzeyi için Enterprise genel bakışı sayfasına bakın.

Dahilî mekanizma ayrıntıları, kaynak deposunun dahilî belgelerinde kalır ve bu kılavuzun kapsamı dışındadır.

Bu, bir derleme-zamanı statik-çözümleme kuralıdır. Çözümleme sırasında PHPStan içinde yürütülür, yalnızca kaynak yapısını okur ve üretilen PDF’ler veya dağıtılmış herhangi bir hizmet üzerinde hiçbir çalışma zamanı etkisi yoktur. Onu kaydetmek ve PHPStan düzeyini seçmek tümleştiricinin sorumluluğundadır.

Bu sayfa, geliştirici-aracı bir statik-çözümleme kuralını açıklar. Kodunuz hakkında hiçbir uyumluluk, sertifikasyon veya doğruluk garantisi vermez; yalnızca sürüm-sınırı içe-aktarma ihlallerini raporlar ve önericidir. Hukuki tavsiye oluşturmaz. Derlemenizin kendi mimari veya sözleşmeye dayalı yükümlülüklerinizi karşılayıp karşılamadığını değerlendirmek sizin sorumluluğunuzdadır.