NextPDF Cloudflare ön yükleme ve keşif
Bir bakışta
“Bir bakışta” başlıklı bölümKöprü, kendi servis sağlayıcısını, paketini (bundle) veya otomatik keşif kancasını içermez. Açık kuruculara sahip final sınıflardan oluşan bir kümedir. Burada “keşif”, enjekte edilecek iş ortaklarını seçip bunları çerçevenizin konteynerine bağlamak anlamına gelir. Bu sayfa söz konusu bağlantı düzenini açıklar. Pakette bulunmayan bir kayıt mekanizması varsaymaz.
İşleyici köprüsü nasıl keşfedilir
“İşleyici köprüsü nasıl keşfedilir” başlıklı bölümSiz CloudflareHtmlRenderer sınıfını oluşturursunuz; onu keşfetmezsiniz. Bağımlılıkları PHP Standard Recommendation (PSR) sözleşmeleridir: PSR-18, PSR-17 ve PSR-3’ün yanı sıra paketin kendi yapılandırma ve sözleşme türleri. Bu iş ortaklarını oluşturabilen herhangi bir çerçeve, işleyiciyi de oluşturabilir. Paket yalnızca PSR sözleşmelerine bağımlıdır; tests/Unit/Architecture/PsrConformanceTest.php testi, işleyiciye herhangi bir somut istemcinin bağlanmadığını doğrular. Ana uygulamanız, mevcut HTTP istemci bağlamasını değiştirmeden yeniden kullanabilir. Laravel, Symfony ve CodeIgniter NextPDF adaptörleri aynı PSR-18 bağlamasını yeniden kullanır. Bu paket, kendine ait herhangi bir çerçeve paketi eklemez.
Ön yükleme sırası
“Ön yükleme sırası” başlıklı bölümİş ortaklarını CloudflareHtmlRenderer kurucusuyla eşleşecek şekilde şu sırayla çözümleyin:
- PSR-18
ClientInterfacearayüzünü uygulamanın mevcut HTTP istemci bağlamasından çözümleyin. - PSR-17
RequestFactoryInterfaceveStreamFactoryInterfacearayüzlerini çözümleyin; sabitlenmiş cURL taşımasını kullanmak istediğinizdeResponseFactoryInterfacearayüzünü de çözümleyin. - Çözümlenmiş yapılandırmadan bir
CloudflareRendererConfigoluşturun (“Yapılandırma çözümleme sırası” bölümüne bakın). - İsteğe bağlı olarak bir PSR-3
LoggerInterface, birLocalRendererFactoryInterfaceve açık birHtmlSecurityPolicyInterfaceçözümleyin. - Bu iş ortaklarıyla
CloudflareHtmlRenderersınıfını oluşturun.
Bu adımların hiçbiri ağ bağlantısı kurmaz. İlk ağ etkileşimi, render() veya isAvailable() çağrısını yaptığınızda gerçekleşir.
Konteyner bağlamaları
“Konteyner bağlamaları” başlıklı bölümTemsili bir bağlama (çerçeveden bağımsız sözde kod):
<?php
declare(strict_types=1);
use NextPDF\Cloudflare\CloudflareHtmlRenderer;use NextPDF\Cloudflare\CloudflareRendererConfig;use Psr\Http\Client\ClientInterface;use Psr\Http\Message\RequestFactoryInterface;use Psr\Http\Message\ResponseFactoryInterface;use Psr\Http\Message\StreamFactoryInterface;use Psr\Log\LoggerInterface;
$container->singleton(CloudflareHtmlRenderer::class, function ($c) { return new CloudflareHtmlRenderer( config: CloudflareRendererConfig::fromArray($c->get('config')['cloudflare']), httpClient: $c->get(ClientInterface::class), requestFactory: $c->get(RequestFactoryInterface::class), streamFactory: $c->get(StreamFactoryInterface::class), logger: $c->get(LoggerInterface::class), responseFactory: $c->get(ResponseFactoryInterface::class), );});Yapılandırma çözümleme sırası
“Yapılandırma çözümleme sırası” başlıklı bölümPaket, ortam değişkenlerini kendisi okumaz. Eksiksiz oluşturulmuş bir CloudflareRendererConfig kabul eder. Ana uygulamada yapılandırmayı şu sırayla çözümleyin: önce ortam değişkenleri, ardından yayımlanmış yapılandırma veya çerçeve yapılandırması, ardından kurucuda yerleşik paket varsayılanları (/integrations/cloudflare/configuration/ adresinde belgelenmiştir). CloudflareRendererConfig::fromArray(), eksik veya yanlış türlendirilmiş her anahtar için kurucu varsayılanlarını uygular; böylece kısmi bir yapılandırma dizisi başarısız olmak yerine öngörülebilir biçimde varsayılana döner.
Tanılama
“Tanılama” başlıklı bölümCloudflareRendererConfig::isValid(), ön yükleme aşaması sinyalidir. Hem workerUrl hem de apiToken değerlerinin boş olmadığını denetleyen ve hiçbir ağ çağrısı yapmayan saf bir kontroldür; bu nedenle onu dağıtım geçidi olarak kullanabilirsiniz. Çalışma zamanı sinyali CloudflareHtmlRenderer::isAvailable() metodudur; bu metot, kimliği doğrulanmış bir HTTP HEAD isteği yapar ve true (durum 500 değerinin altındaysa) ya da false (aksi durumda; hiçbir zaman istisna fırlatmadan) döndürür; bu nedenle onu hazırlık denetimi olarak kullanabilirsiniz. Başarılı bir denetim yalnızca bir ipucudur, garanti değildir: sonrasında gelen POST isteği yine de başarısız olabilir.
Ayrıca bakınız
“Ayrıca bakınız” başlıklı bölüm- /integrations/cloudflare/integration/ — eksiksiz entegrasyon adım adım kılavuzu.
- /integrations/cloudflare/overview/ — köprünün ne olduğu ve hangi sınırı aştığı.
- /integrations/cloudflare/configuration/ — her alan ve varsayılan değer.
- /integrations/cloudflare/security-and-operations/ — sabitlenmiş taşımanın ne zaman etkinleştiği.