NextPDF Gotenberg başlatma ve keşif süreci
Bir bakışta
“Bir bakışta” başlıklı bölümKöprünün otomatik keşif mekanizması yoktur. Köprüyü açık kurucu enjeksiyonuyla düz bir hizmet olarak oluşturursunuz: bir yapılandırma değer nesnesi ve PHP Standard Recommendation (PSR) tarafından tanımlanan Hypertext Transfer Protocol (HTTP) bağımlılıkları. Bu paket herhangi bir hizmet sağlayıcı, bundle veya konteyner uzantısı içermez ve kendi başına hiçbir ortam değişkenini okumaz. Buradaki “keşif”, ana çatının bu bağımlılıkları nasıl sağladığını ifade eder. Bu sorumluluk pakete değil, çatıya aittir.
Köprü nasıl keşfedilir
“Köprü nasıl keşfedilir” başlıklı bölümKöprü otomatik olarak keşfedilmez; onu siz oluşturursunuz. GotenbergBridge dört zorunlu bağımsız değişken gerektirir ve üç isteğe bağlı bağımsız değişken kabul eder:
- Zorunlu: bir
GotenbergConfig, bir PSR-18 istemcisi, bir PSR-17 istek fabrikası ve bir PSR-17 akış fabrikası. - İsteğe bağlı: bir PSR-3 günlükleyici, bir Hypertext Markup Language (HTML) güvenlik politikası (varsayılan olarak NextPDF çekirdek varsayılan politikası) ve bir PSR-17 yanıt fabrikası.
Yanıt fabrikası, cURL tabanlı sabitlemeli aktarımı etkinleştirir. Bunu sağlarsanız ve köprü sabitleyebileceği bir şey bulursa (çözümlenmiş adresler veya yapılandırılmış SubjectPublicKeyInfo (SPKI) sabitlemeleri), sabitlemeli aktarımı kullanır. Bunu atlarsanız, enjekte edilen PSR-18 istemcisi her zaman kullanılır. Tam bağımsız değişken sözleşmesini şurada bulabilirsiniz: /integrations/gotenberg/configuration/.
Başlatma sırası
“Başlatma sırası” başlıklı bölümBir kayıt adımı yoktur. Yaşam döngüsü şu şekildedir:
- Ana uygulama bir PSR-18 istemcisini ve PSR-17 fabrikalarını çözümler. Bu işlemi ana konteyner yapar; paket yapmaz.
- Uygulama, yapılandırma kaynağından bir
GotenbergConfigoluşturur.GotenbergConfig::fromArray()bir snake_case dizisini kabul eder ve hatalı biçimlendirilmiş değerlerin yerine varsayılanları kullanır. Kaynağı başlatma yolunuzda doğrulayın; böylece eksik bir Uniform Resource Locator (URL) değeri, her dönüştürmede değil, başlatma sırasında hata verir. - Uygulama,
GotenbergBridgenesnesini yapılandırma ve bağımlılıklarla birlikte oluşturur. - İlk dönüştürme çağrısı URL doğrulamasını, server-side request forgery (SSRF) taramasını, dosya adı taramasını ve isteğin yürütülmesini gerçekleştirir. Oluşturma sırasında hiçbir iş yapılmaz; köprü, siz onu çağırana kadar hareketsiz kalır.
Konteyner bağlamaları
“Konteyner bağlamaları” başlıklı bölümBu paket herhangi bir konteyner bağlaması içermez. Köprünün enjekte edilebilir olması için onu ana uygulamanızın konteynerine şu şekilde kaydedin:
- Yapılandırma kaynağınızdan
GotenbergConfignesnesini bağlayın. - PSR-18 istemcisini ve PSR-17 fabrikalarını seçtiğiniz gerçeklemelere bağlayın.
- Bu bağımlılıkları alan bir hizmet olarak
GotenbergBridgenesnesini bağlayın.
Çatıya özgü otomatik bağlama, yapılandırma yayımlama ve hizmet sağlayıcı ya da bundle kaydı burada değil, ayrı çatı entegrasyon paketlerinde yer alır. Bu paket, tasarım gereği çatıdan bağımsızdır. Yalnızca PSR arabirimlerine bağlıdır, bu nedenle herhangi bir konteyner altında çalışır.
Yapılandırma çözümleme sırası
“Yapılandırma çözümleme sırası” başlıklı bölümPaket kendi başına hiçbir yapılandırmayı okumaz. Çözümleme sırası, uygulamanızın GotenbergConfig::fromArray() yöntemini veya kurucuyu çağırmadan önce uyguladığı sıradır. Yaygın bir sıralama şudur: önce ortam değişkenleri, ardından yayımlanmış bir yapılandırma dosyası, ardından kod varsayılanları. Bu sıralama, bu paketin değil, uygulamanızın sözleşmesidir. Paketin tanımladığı asıl şey varsayılan değerdir — yani fromArray() yöntemine geçirilen dizinin atladığı her alan için kullanılan değer: boş application programming interface (API) URL’si, 30 saniyelik zaman aşımı, 50 MiB boyut sınırı, boş API anahtarı ve boş sabitleme listeleri.
Tanılama
“Tanılama” başlıklı bölümİki yerleşik sinyal bağlamayı doğrular:
isAvailable()URL’yi ağ trafiği olmadan doğrular, ardından birHEADisteğini<apiUrl>/healthadresine gönderir ve durum500değerinin altında olduğunda kullanılabilir olduğunu bildirir. Herhangi bir başarısızlıkta istisna fırlatmak yerinefalsedöndürür. Bunu bir hazırlık denetiminden çağırın.- Sorunsuz olduğu bilinen küçük bir belgenin duman testi dönüştürmesi, tüm yolu uçtan uca doğrular. Buna
<apiUrl>/forms/libreoffice/convertadresine gönderilen çok parçalı (multipart) istek ve yanıt doğrulaması dahildir.
Ayrıca bkz.
“Ayrıca bkz.” başlıklı bölüm- /integrations/gotenberg/integration/ — hizmet üzerinden bir NextPDF işlem hattını yürütme.
- /integrations/gotenberg/install/ — paket ve hizmet kurulumu.
- /integrations/gotenberg/configuration/ — tam kurucu ve yapılandırma sözleşmesi.
- /integrations/gotenberg/overview/ — dönüştürme akışı ve bağımlılık modeli.