Enterprise sürüm
Output Pipeline — Derinlemesine başvuru
Bir bakışta
“Bir bakışta” başlıklı bölümNextPDF\Enterprise\OutputPipeline, birçok Pro işlem hattı manifestosunu tek bir toplu iş olarak yürütür. BatchPipelineOrchestrator, Pro PipelineExecutor’ı toplu koordinasyon ile sarar: toplu iş boyutunda sınırlı kaynak korumacısı, isteğe bağlı genel bir toplu iş zaman aşımı, manifesto başına değişken enjeksiyonu ve toplam muhasebe. İsteğe bağlı bir toplu iş sonu uyumluluk denetimi, tamamlanan her çıktıyı Enterprise uyumluluk ağ geçidi üzerinden yeniden doğrular ve kapalı arızalanır. Her çalıştırma; manifesto başına sonuçları, tamamlanan ve başarısız sayılarını, zamanlamayı ve isteğe bağlı uyumluluk raporunu taşıyan bir BatchPipelineResult döndürür.
Kullanılabilirlik ve lisanslama
“Kullanılabilirlik ve lisanslama” başlıklı bölümBu yetenek NextPDF Enterprise (nextpdf/enterprise) içinde sunulur ve Enterprise katmanı bir lisans zarfı ile etkinleşir. Bu yetkilendirme olmadan yapılan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve bir lisans edinin.
| Katman | Output-pipeline yüzeyi |
|---|---|
| Core | Output-pipeline yüzeyi yok. |
| Pro | Tek manifestolu işlem hattı (pro.output.pipeline yeteneği). |
| Enterprise | Toplu düzenleme, toplu iş boyutu sınırı, toplu iş zaman aşımı, uyumluluk devri. |
Enterprise toplu yüzeyi, özellik başına ayrı bir yetenek kodu taşımaz; paket sınırı onu kapılar. Pro tek manifestolu yeteneği pro.output.pipeline bir ön koşuldur, kapı değil. Tek başına bir Pro lisansı yalnızca alttaki tek manifestolu işlem hattının kilidini açar, bu toplu yüzeyi değil.
composer require nextpdf/enterprise:^3Genel API yüzeyi
“Genel API yüzeyi” başlıklı bölüm| Sembol | Parametreler | Öntanımlı davranış | Döndürür | Fırlatır veya şununla arızalanır | Notlar |
|---|---|---|---|---|---|
BatchPipelineOrchestrator::__construct() | PipelineExecutor $executor, BatchPipelineConfig $config, ?ComplianceGateway $complianceGateway, ComplianceProfile $complianceProfile | Öntanımlı yapılandırma; ağ geçidi yok; ComplianceProfile::PdfA4 profili | — | Hiçbir şey | Uyumluluk denetimi etkinken bir ağ geçidi enjekte edin; ağ geçidi olmadan, denetlenen her manifesto başarısız olarak raporlanır. |
BatchPipelineOrchestrator::executeBatch() | list<PipelineManifest> $manifests, array<string, array<string, mixed>> $variablesMap = [] | Manifestoları gönderim sırasıyla yürütür; değişkenler manifesto ID’sine göre çözülür | BatchPipelineResult | Toplu iş 10,000 manifestoyu aştığında OverflowException; uyumluluk denetimi etkinken ağ geçidi istisnaları (bkz. Uç durumlar) | Çözücü Throwable’ları asla kaçmaz; Pro yürütücü bunları başarısız adım sonuçlarına indirger. |
BatchPipelineConfig::__construct() | int $maxConcurrency = 4, int $timeoutMs = 0, bool $complianceCheckOnComplete = false | Eşzamanlılık 4; zaman aşımı yok; uyumluluk denetimi yok | — | Hiçbir şey | Salt okunur değer nesnesi. timeoutMs = 0, toplu iş zaman aşımını devre dışı bırakır. |
BatchPipelineResult::__construct() | list<PipelineResult> $results, int $totalManifests, int $completedCount, int $failedCount, float $durationMs, ?array $complianceReport = null | Manifesto başına PipelineResult değerleri üzerinde toplam | — | Hiçbir şey | Salt okunur. Denetim çalışmadıkça complianceReport, null kalır. |
BatchPipelineResult::allSucceeded() | — | failedCount === 0 sınamasını yapar | bool | Hiçbir şey | Sıfır başarısızlığı olan, zaman aşımıyla kesilmiş bir toplu işte true döndürür; bkz. Uç durumlar. |
BatchPipelineResult::successRate() | — | completedCount / totalManifests | float | Hiçbir şey | Boş bir toplu iş için 1.0 döndürür. |
BatchPipelineResult::hasComplianceReport() | — | complianceReport !== null sınamasını yapar | bool | Hiçbir şey | — |
public function __construct( private readonly PipelineExecutor $executor, private readonly BatchPipelineConfig $config = new BatchPipelineConfig(), private readonly ?ComplianceGateway $complianceGateway = null, private readonly ComplianceProfile $complianceProfile = ComplianceProfile::PdfA4,) {}
public function executeBatch( array $manifests, array $variablesMap = [],): BatchPipelineResultpublic function __construct( public int $maxConcurrency = 4, public int $timeoutMs = 0, public bool $complianceCheckOnComplete = false,) {}Davranış sözleşmesi
“Davranış sözleşmesi” başlıklı bölümexecuteBatch(), önce toplu iş boyutunu 10,000 manifestoluk bir üst sınıra göre doğrular. Üst sınırın üzerindeki bir toplu iş, herhangi bir manifesto yürütülmeden önce OverflowException fırlatır; hiçbir şey sessizce bozulmaz.
Manifestolar ardından Pro PipelineExecutor aracılığıyla gönderim sırasıyla yürütülür. Her manifesto, $variablesMap içinde kendi ID’sine göre anahtarlanan değişkenler girdisini alır; girdisi olmayan bir manifesto boş bir değişkenler eşlemesi alır. Bir manifesto, PipelineResult durumu Completed olduğunda tamamlanmış sayılır; başka herhangi bir uçtaki durum başarısız sayılır. Çözücü istisnaları kaçmaz: Pro yürütücü her çözücü Throwable’ını başarısız bir adım sonucuna dönüştürür, böylece executeBatch() bir adım hatasında toplu işin ortasında iptal etmek yerine sonuçları her zaman toplar.
timeoutMs sıfırdan büyük olduğunda, her manifesto başlamadan önce geçen süre denetlenir. Bütçe tükendiğinde, kalan manifestolar atlanır: bunlar hiçbir PipelineResult üretmez ve ne tamamlanmış ne de başarısız sayılır. totalManifests her zaman gönderilen sayıyı raporlar.
complianceCheckOnComplete etkinleştirildiğinde, düzenleyici, tamamlanan her manifestonun nihai PDF’ini enjekte edilen ComplianceGateway aracılığıyla yapılandırılmış ComplianceProfile’a göre doğrular. Denetim kapalı arızalanır:
- Enjekte edilmiş ağ geçidi yok: uyumluluk hiçbir zaman doğrulanmadığından, denetlenen her manifesto başarısız olarak raporlanır.
- Manifestonun adım çıktılarından çözülebilir bir PDF çıktısı yok: başarısız.
- Ağ geçidi hiçbir sonuç döndürmez (isteğe bağlı mod yardımcı bileşen kullanılamazlığı): başarısız. Olumlu bir sonucun yokluğu bir geçiş değildir.
- Ağ geçidi herhangi bir uygunsuzluk raporlar: başarısız.
Nihai PDF, tamamlanan bir manifestonun adım çıktıları, son adım önce olacak şekilde, %PDF başlığıyla başlayan doğrudan bir dize değeri için taranarak çözülür. Adım çıktıları, PDF bayt dizelerini asla alt dizilerin içine yerleştirmez; yalnızca doğrudan çıktı değerleri incelenir. Tamamlanmayan manifestolar denetlenmez, atlanır.
Uyumluluk raporu; profile, checked, passed, failed ve failures anahtarlarına sahip bir dizidir; her başarısızlık girdisi manifestId ve reason taşır. Rapor, BatchPipelineResult::$complianceReport’a eklenir ve hasComplianceReport() aracılığıyla erişilebilir.
Uyumluluk devri, bir yetkilendirme denetimi değil, bir yeniden doğrulama yardımcısıdır. Yalnızca bulguları raporlar.
Uç durumlar ve arıza modları
“Uç durumlar ve arıza modları” başlıklı bölüm- 10,000’den fazla manifesto: herhangi bir yürütme başlamadan önce
OverflowException. timeoutMs = 0, toplu iş zaman aşımı yok demektir. Üretimde sonlu bir değer ayarlayın.- Zaman aşımı kesmesi: atlanan manifestolar hiçbir sayımda görünmez, bu nedenle
completedCount + failedCount,totalManifests’ten az olabilir.allSucceeded()yalnızcafailedCount === 0sınamasını yapar ve kesilmiş bir toplu iş için true döndürebilir. Kesmeyi saptamak içincount($result->results)değerinitotalManifestsile karşılaştırın. successRate(), boş bir toplu iş için (sıfır manifesto gönderilmiş)1.0döndürür.- Manifesto ID’leri toplu iş düzeyinde yinelemeden arındırılmaz. Bir ID’yi paylaşan iki manifesto da yürütülür ve aynı değişkenler girdisini çözer.
- Yapısal manifesto hataları (boş adım listesi, yinelenen adım ID’leri, bilinmeyen bağımlılık, bağımlılık döngüsü, çıktı türü uyuşmazlığı, eksik devam adımı),
executeBatch()hiç çağrılmadan önce, manifesto oluşturulurkenInvalidArgumentExceptionfırlatır. - Uyumluluk denetimi etkinken,
ComplianceGateway::validate(),ComplianceSidecarUnavailableException(gerekli modda yardımcı bileşen kullanılamaz) veyaInvalidArgumentException(profilin aracı için kayıtlı doğrulayıcı yok) fırlatabilir. Her iki istisna da yürütmeden sonra ancak sonuç oluşturulmadan önceexecuteBatch()’ten kaçar, bu nedenle manifesto başına sonuçlar çağırana kaybolur. İsteğe bağlı modda ağ geçidi bunun yerine null döndürür ve manifesto bir uyumluluk başarısızlığı olarak kaydedilir. - İşlem hattı içi bir uyumluluk devri adımı, hiçbir yukarı akış adım çıktısı tanınabilir PDF baytları içermediğinde başarısız olur; asla sessizce geçmez.
- Bu modül hiçbir kriptografik işlem gerçekleştirmez; FIPS modu uygulanabilir değildir.
Uygunluk
“Uygunluk” başlıklı bölümBu modül için hiçbir standart uygunluğu iddia edilmez; bu bir düzenleme katmanıdır. İsteğe bağlı uyumluluk denetimi, kendi başvurularını taşıyan Enterprise uyumluluk ağ geçidine ve onun harici doğrulayıcılarına erteler. Öntanımlı profil ComplianceProfile::PdfA4’tür; diğer ağ geçidi profilleri başka PDF/A, PDF/UA ve PAdES hedeflerini kapsar.
Bir uyumluluk raporu, seçilen profile göre doğrulayıcı bulgularını belirtir. Bir belgeyi sertifikalandırmaz, düzenleyici yeterliliği garanti etmez veya hukuki tavsiye oluşturmaz. Bir çıktının yükümlülüklerinizi karşılayıp karşılamadığını değerlendirmek sizin sorumluluğunuzdadır.
Geliştirme notları
“Geliştirme notları” başlıklı bölüm- Üretim dağıtımlarında, paralel çalışan sevki ve geri basınç ayrı bir yürütme yardımcı bileşeni tarafından ele alınır. PHP düzenleyicisi, toplu koordinasyon ve uyumluluk devri mantığını sağlar ve doğrudan istek işleyiciler tarafından değil, iş çalışanı tarafından çağrılır.
- PHP yedek yolu, manifestoları sırayla yürütür.
maxConcurrency, yardımcı bileşen güdümlü dağıtımda eşzamanlı çalışan geri çağrılarını sınırlar; bunu PHP çalışan havuzuna göre boyutlandırmak operatörün sorumluluğundadır. - İşlem hattı içi uyumluluk devri adım çözücüsü, inspect türü adımlar için kayıtlı bir iç türdür. Toplu iş sonu doğrulamayı bunun için doğrudan işlem hattı adımları oluşturmak yerine
BatchPipelineConfigaracılığıyla etkinleştirin. PipelineManifestörneklerini erken oluşturun. Yapısal doğrulamaları yapıcıda çalışır, böylece geçersiz grafikler hızla başarısız olur ve toplu iş bütçesini asla tüketmez.
Yayımlama sınırı
“Yayımlama sınırı” başlıklı bölümBu sayfa yalnızca dışarıdan gözlemlenebilir davranışı ve desteklenen genel API yüzeyini belgeler. İç ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.