Pro edisi
Output Pipeline
Sekilas pandang
Bagian berjudul “Sekilas pandang”Output Pipeline menjalankan manifes deklaratif berisi langkah-langkah PDF dalam urutan dependensi, dengan retry per-langkah dan opsi stop-on-error. Beberapa tipe langkah memerlukan kapabilitas Enterprise Pack tambahan.
Ketersediaan & lisensi
Bagian berjudul “Ketersediaan & lisensi”Kapabilitas ini hadir dalam NextPDF Pro (nextpdf/pro) dan aktif dengan amplop lisensi tier Pro. Deployment tanpa entitlement tersebut tidak memuat kelas-kelas kapabilitas ini. Bandingkan edisi dan dapatkan lisensi.
Eksekutor pipeline itu sendiri adalah bagian dari edisi Pro. Tiga tipe langkah tambahan memerlukan kapabilitas Enterprise Pack bernama: langkah penyamaran (redaction) memerlukan kapabilitas Privacy Pack, dan langkah ekstraksi serta OCR-overlay memerlukan kapabilitas Intelligence Pack. Langkah tergerbang yang tidak berlisensi gagal-tertutup saat eksekusi — ia menghasilkan hasil langkah yang gagal dan resolver-nya tidak pernah dipanggil — alih-alih membatalkan seluruh run.
Pemasangan
Bagian berjudul “Pemasangan”composer require nextpdf/pro:^3Kode berada di bawah namespace NextPDF\Pro\OutputPipeline.
Tinjauan konseptual
Bagian berjudul “Tinjauan konseptual”PipelineExecutor menerima sebuah PipelineManifest, mengurutkan langkah ke dalam urutan topologis, dan mengirimkan setiap langkah ke resolver yang terdaftar di StepResolverRegistry. Keluaran langkah disimpan dalam sebuah PipelineContext untuk langkah-langkah hilir. Eksekutor menegakkan timeout global, mendukung retry per-langkah, dan dapat melanjutkan dari langkah bernama. Ia dirancang untuk berjalan di dalam worker job asinkron, bukan langsung dari handler permintaan.
Tipe langkah bawaan mencakup generate, merge, split, inspect, compress, sign, dan convert. Tipe langkah penyamaran, ekstraksi, dan OCR-overlay bersifat berlisensi-kapabilitas dan dipetakan ke kapabilitas Enterprise Pack.
Mengapa dirancang demikian
Bagian berjudul “Mengapa dirancang demikian”Eksekutor hanya melakukan orkestrasi. Ia mengurutkan langkah, menegakkan gerbang lisensi, dan mengirimkan masing-masing ke resolver yang terdaftar, tetapi tidak melakukan pekerjaan PDF apa pun sendiri. Pemisahan itu memungkinkan satu manifes berjalan baik melalui jalur PHP sekuensial ini maupun melalui worker out-of-band yang mengirim langkah secara paralel, tanpa perubahan pada kode pemanggil. Desainnya menyasar worker job asinkron alih-alih handler permintaan, karena pipeline multi-langkah lazimnya hidup lebih lama dari anggaran satu permintaan, dan sebuah antrean menskalakan throughput dengan menambah worker. Timeout global diperiksa di antara langkah dengan alasan yang sama: satu langkah utuh adalah unit kerja yang diserahkan ke resolver, dan orkestrator tidak ikut campur dalam run resolver tersebut. Kegagalan muncul sebagai nilai StepResult per-langkah alih-alih exception yang dilempar, sehingga satu langkah yang gagal tidak pernah meruntuhkan PipelineResult agregat yang dilaporkan worker.
Latar belakang desain: Pembuatan dokumen volume-tinggi.
Kontrak perilaku
Bagian berjudul “Kontrak perilaku”execute($manifest, $variables)mengembalikan hasil dengan status keseluruhan, hasil per-langkah, durasi, serta jumlah langkah yang selesai dan gagal.- Langkah berjalan dalam urutan topologis; resolver yang hilang untuk suatu tipe langkah menghasilkan langkah yang gagal dengan pesan yang jelas.
PipelineOptions::$stopOnErrormenghentikan eksekusi pada kegagalan pertama; jika tidak, eksekusi berlanjut dan status akhir mencerminkan kegagalan apa pun.- Timeout global, ketika disetel, menggagalkan pipeline jika terlampaui sebelum langkah berikutnya dimulai.
- Retry per-langkah dibatasi oleh maksimum yang dikonfigurasi; hanya kegagalan non-terminal yang di-retry.
- Resume-from-step melewatkan langkah-langkah sebelumnya hingga langkah bernama tercapai.
- Tipe langkah tergerbang-kapabilitas gagal-tertutup saat eksekusi dengan kode galat lisensi ketika kapabilitas Pack yang diperlukan tidak ada; resolver tidak pernah dipanggil.
Contoh kode — Mulai cepat
Bagian berjudul “Contoh kode — Mulai cepat”Berikut ini mencerminkan API publik yang terdokumentasi. Repositori tidak mengirimkan contoh yang dapat dijalankan untuk modul ini.
use NextPDF\Pro\OutputPipeline\PipelineExecutor;
$result = (new PipelineExecutor($stepResolverRegistry))->execute($manifest);Contoh kode — Produksi
Bagian berjudul “Contoh kode — Produksi”use NextPDF\Pro\OutputPipeline\PipelineExecutor;
$executor = new PipelineExecutor($stepResolverRegistry);
// Invoke from an async job worker, not a request handler.$result = $executor->execute($manifest, ['customerName' => 'Acme']);
if ($result->status !== \NextPDF\Pro\OutputPipeline\PipelineStatus::Completed) { foreach ($result->stepResults as $stepResult) { // Inspect per-step error detail. }}Kasus tepi & jebakan
Bagian berjudul “Kasus tepi & jebakan”- Pipeline dimaksudkan untuk berjalan secara asinkron melalui sistem job. Menjalankannya inline memblokir pemanggil selama durasi penuh pipeline.
- Tipe langkah tanpa resolver terdaftar menggagalkan langkah tersebut alih-alih membatalkan seluruh pipeline (kecuali stop-on-error disetel).
- Timeout global diperiksa di antara langkah, bukan di tengah-langkah; langkah yang berjalan lama dapat melampaui anggaran sebelum pemeriksaan terpicu.
Kinerja
Bagian berjudul “Kinerja”Total durasi adalah jumlah durasi langkah ditambah overhead retry. Timeout global membatasi waktu wall-clock kasus terburuk. Tidak ada angka throughput yang dipublikasikan; biaya pipeline didominasi oleh langkah-langkah yang Anda sertakan. Ukur dengan manifes yang representatif.
Catatan keamanan
Bagian berjudul “Catatan keamanan”Eksekutor meneruskan dokumen input dan variabel ke resolver langkah; perlakukan keduanya sebagai tidak tepercaya dan validasi di dalam setiap resolver. Langkah tergerbang-kapabilitas gagal-tertutup ketika tidak berlisensi. Eksekutor tidak mencatat isi dokumen.
Kesesuaian
Bagian berjudul “Kesesuaian”Eksekutor sendiri tidak melakukan pekerjaan kesesuaian format apa pun; kesesuaian bergantung pada resolver langkah individual (generate, merge, split, sign, convert). Korpus RAG tidak tersedia saat penulisan, sehingga halaman ini tidak menyatakan pengenal klausa eksternal apa pun.
Catatan batas Enterprise
Bagian berjudul “Catatan batas Enterprise”Enterprise menambahkan kapabilitas Pack yang membuka tipe langkah tergerbang (penyamaran, ekstraksi, OCR overlay) pada tingkat perilaku. Tanpa Pack tersebut, pipeline tetap menjalankan setiap langkah yang tidak tergerbang. Internal Pack berada di luar cakupan di sini.
Fallback / alternatif Core
Bagian berjudul “Fallback / alternatif Core”Tanpa Pro, orkestrasi operasi PDF secara imperatif dengan API NextPDF Core; manifes deklaratif, pengurutan dependensi, dan retry adalah tambahan Pro..
Batas publikasi
Bagian berjudul “Batas publikasi”Halaman ini hanya mendokumentasikan perilaku yang dapat diamati secara eksternal dan permukaan API publik yang didukung. Path namespace internal, kelas pembantu, tabel mekanisme, nama berkas runbook, dan prefiks tiket berada di luar cakupan.