Boot dan discovery untuk NextPDF Gotenberg
Sekilas
Bagian berjudul “Sekilas”Bridge ini tidak memiliki mekanisme auto-discovery. Anda membangunnya sebagai service biasa dengan constructor injection eksplisit: sebuah value object konfigurasi dan kolaborator Hypertext Transfer Protocol (HTTP) yang didefinisikan oleh PHP Standard Recommendation (PSR). Paket ini tidak menyertakan service provider, bundle, atau container extension; paket ini sendiri juga tidak membaca variabel environment apa pun. Di sini, “discovery” berarti cara framework host menyediakan para kolaborator tersebut. Tanggung jawab itu berada pada framework, bukan paket ini.
Bagaimana bridge ditemukan
Bagian berjudul “Bagaimana bridge ditemukan”Bridge ini tidak ditemukan secara otomatis. Andalah yang membangunnya. GotenbergBridge membutuhkan empat argumen dan menerima tiga argumen opsional:
- Wajib: sebuah
GotenbergConfig, sebuah klien PSR-18, sebuah request factory PSR-17, dan sebuah stream factory PSR-17. - Opsional: sebuah logger PSR-3, sebuah kebijakan keamanan Hypertext Markup Language (HTML) (secara baku menggunakan kebijakan inti bawaan NextPDF), dan sebuah response factory PSR-17.
Response factory mengaktifkan transport cURL-pinned. Jika Anda menyediakannya dan bridge memiliki sesuatu untuk di-pin (alamat yang sudah di-resolve atau pin SubjectPublicKeyInfo (SPKI) yang dikonfigurasi), bridge akan menggunakan transport pinning. Jika tidak disediakan, klien PSR-18 yang di-inject selalu digunakan. Kontrak argumen lengkapnya tersedia di /integrations/gotenberg/configuration/.
Urutan boot
Bagian berjudul “Urutan boot”Tidak ada langkah registrasi. Siklus hidupnya adalah:
- Host melakukan resolve terhadap sebuah klien PSR-18 dan factory PSR-17. Container host yang melakukan ini; bukan paketnya.
- Aplikasi membangun sebuah
GotenbergConfigdari sumber konfigurasinya.GotenbergConfig::fromArray()menerima array snake_case dan mengganti nilai yang salah bentuk dengan nilai baku. Validasikan sumber tersebut pada boot path Anda, sehingga nilai Uniform Resource Locator (URL) yang hilang gagal saat boot, bukan pada setiap konversi. - Aplikasi membangun
GotenbergBridgedengan konfigurasi dan kolaboratornya. - Panggilan konversi pertama menjalankan validasi URL, penyaringan server-side request forgery (SSRF), penyaringan nama berkas, dan request-nya. Tidak ada pekerjaan yang terjadi saat konstruksi; bridge tetap inert sampai Anda memanggilnya.
Binding container
Bagian berjudul “Binding container”Paket ini tidak menyertakan binding container. Agar bridge dapat di-inject, daftarkan di container aplikasi host Anda sebagai berikut:
- Bind
GotenbergConfigdari sumber konfigurasi Anda. - Bind klien PSR-18 dan factory PSR-17 ke implementasi pilihan Anda.
- Bind
GotenbergBridgesebagai service yang menerima dependency tersebut.
Auto-wiring native framework, publikasi konfigurasi, dan registrasi service-provider atau bundle merupakan bagian dari paket integrasi framework yang khusus, bukan di sini. Paket ini dirancang agar framework-agnostic. Paket ini hanya bergantung pada antarmuka PSR, sehingga bekerja dengan container apa pun.
Urutan resolusi konfigurasi
Bagian berjudul “Urutan resolusi konfigurasi”Paket ini tidak membaca konfigurasi apa pun dengan sendirinya. Urutan resolusinya mengikuti apa pun yang diimplementasikan aplikasi Anda sebelum memanggil GotenbergConfig::fromArray() atau constructor. Urutan yang umum adalah variabel environment, lalu berkas config yang dipublikasikan, lalu nilai baku di kode. Urutan itu adalah kontrak aplikasi Anda, bukan kontrak paket ini. Yang didefinisikan paket ini hanyalah nilai baku untuk setiap field yang dihilangkan oleh array yang diteruskan ke fromArray(): URL application programming interface (API) kosong, timeout 30 detik, batas ukuran 50 MiB, kunci API kosong, dan daftar pin kosong.
Diagnostik
Bagian berjudul “Diagnostik”Dua sinyal bawaan berikut memastikan wiring:
isAvailable()memvalidasi URL tanpa lalu lintas jaringan, lalu mengirim requestHEADke<apiUrl>/healthdan melaporkan ketersediaan jika statusnya di bawah500. Method ini mengembalikanfalsealih-alih melempar exception pada kegagalan apa pun. Panggil method ini dari readiness check.- Smoke conversion dari dokumen kecil yang sudah diketahui valid memastikan keseluruhan jalur secara end to end. Ini mencakup request multipart ke
<apiUrl>/forms/libreoffice/convertdan validasi response.
Lihat juga
Bagian berjudul “Lihat juga”- /integrations/gotenberg/integration/ — menjalankan pipeline NextPDF melalui service.
- /integrations/gotenberg/install/ — instalasi paket dan service.
- /integrations/gotenberg/configuration/ — kontrak constructor dan config lengkapnya.
- /integrations/gotenberg/overview/ — alur konversi dan model dependency.