İçeriğe geç

NextPDF Cloudflare entegrasyonu

Bu sayfa, Cloudflare iş akışını uçtan uca gösterir: paketi kurun, yapılandırın, bir Taşınabilir belge biçimi (PDF) dosyasını işleyin ve isteğe bağlı olarak sonucu arşivleyin. Her adımda işleme, bir Cloudflare Worker ve R2 üzerinden yönlendirilir. Bu nasıl yapılır kılavuzunu, kavramsal /integrations/cloudflare/overview/ ve başvuru niteliğindeki /integrations/cloudflare/configuration/ ile birlikte kullanın.

Terminal window
composer require nextpdf/cloudflare:^0.1

Ardından, Guzzle 7 gibi bir PHP standartları önerisi (PSR)-18 istemcisi ve PSR-17 fabrikaları ekleyin. Paket yalnızca PSR sözleşmelerini bildirir ve somut bir istemci içermez; bu nedenle istemciyi sizin sağlamanız gerekir. Tüm ayrıntılar için bkz. /integrations/cloudflare/install/.

Köprü, bir hizmet sağlayıcı veya paket içermez. Köprüyü doğrudan PSR bileşenleri ve bir CloudflareRendererConfig nesnesiyle oluşturun. Ana çerçeveniz, uygulamanın mevcut PSR-18 bağlamasını yeniden kullanarak köprüyü kendi kapsayıcısına bağlamalıdır. Tam önyükleme sırası ve örnek kapsayıcı bağlaması için bkz. /integrations/cloudflare/boot-and-discovery/.

Önce CloudflareHtmlRenderer sınıfını singleton olarak bağlayın. PSR-18 istemcisini, PSR-17 istek ve akış fabrikalarını ve isteğe bağlı bir PSR-3 günlükleyicisini iletin. Sabitlenmiş cURL taşıyıcısını kullandığınızda ayrıca bir PSR-17 yanıt fabrikası iletin. Bağlama örneği için bkz. /integrations/cloudflare/boot-and-discovery/.

Paket, ayarları bir CloudflareRendererConfig nesnesinden okur. Gizli bilgileri ortamdan yükleyin; bunları asla commit edilmiş dosyalardan yüklemeyin:

<?php
declare(strict_types=1);
use NextPDF\Cloudflare\CloudflareRendererConfig;
$config = CloudflareRendererConfig::fromArray([
'worker_url' => getenv('CF_WORKER_URL') ?: '',
'api_token' => getenv('CF_PDF_TOKEN') ?: '',
'render_timeout' => 60,
'r2_font_bucket' => getenv('CF_R2_FONT_BUCKET') ?: null,
]);

workerUrl değeri, Güvenli köprü metni aktarım protokolü (HTTPS) şemasını kullanmalıdır. apiToken, #[SensitiveParameter] olarak işaretlenmiştir. Tüm alanlara ilişkin başvuru için, konu açık anahtar bilgileri (SPKI) sabitleme alanlarını ve tüm varsayılanları kapsayan /integrations/cloudflare/configuration/ sayfasına bakın. R2 arşivleme yapılandırması ve uygulama programlama arayüzü (API) koruma katmanı /integrations/cloudflare/production-usage/ sayfasında ele alınır.

Duman testinden geçirilecek bir hizmet sağlayıcı yoktur. Bunun yerine şu önyükleme denetimini kullanın:

$config = CloudflareRendererConfig::fromArray($appConfig['cloudflare']);
assert($config->isValid(), 'Cloudflare config incomplete');
// Optional runtime reachability check (authenticated HTTP HEAD):
if (!$renderer->isAvailable()) {
// Worker not reachable — degrade or alert.
}

isValid() yalnızca eksiksizlik denetimi yapar ve herhangi bir ağ çağrısı gerçekleştirmez. isAvailable(), kimliği doğrulanmış bir HEAD isteği gerçekleştirir. Worker çalışır durumda değilse, istisna fırlatmadan false döndürür.

Paket, NextPDF\Cloudflare\ altında şu genel API yüzeyini sunar:

TürRol
CloudflareHtmlRendererİşleme giriş noktası: render(), isAvailable(), getHtmlSecurityPolicy().
CloudflareRendererConfigİşleyici yapılandırması (fromArray(), isValid(), allPublicKeyPins()).
CloudflareRenderResultTipli işleme sonucu (isValid(), size()).
CloudflareRenderPayloadWorker JavaScript nesne gösterimi (JSON) yükü (toJson()).
CloudflareResponseParserWorker yanıtı → sonuç ayrıştırıcısı.
CloudflareSecurityPolicyGirdi ve URL doğrulaması.
Transport\PinnedCurlTransportAlan adı sistemi (DNS) ve taşıma katmanı güvenliği (TLS) sabitlemeli PSR-18 taşıyıcısı.
Contract\LocalRendererFactoryInterface, Contract\LocalRendererInterfaceYerel yedek sözleşmeleri.
ApiProtection, ApiProtectionConfig, ApiProtectionResult, ApiKeyValidatorGelen API koruması.
R2ArchiveManager, R2ArchiveConfig, R2ObjectKey, R2UploadResultR2 arşivleme.
Exception\CloudflareRenderException, Exception\CloudflareNotAvailableException, Exception\InvalidSpkiPinExceptionİstisna hiyerarşisi.

Eksiksiz bir adım adım işleme kılavuzu için bkz. /integrations/cloudflare/quickstart/. Üretim ortamındaki bağlantılar için yedekleme, telemetri, arşivleme ve korumayı kapsayan /integrations/cloudflare/production-usage/ sayfasına bakın.

  • /integrations/cloudflare/overview/ — güven sınırı ve uçta işleme modeli.
  • /integrations/cloudflare/quickstart/ — çalıştırılabilir bir ilk işleme.
  • /integrations/cloudflare/boot-and-discovery/ — kapsayıcı bağlama ayrıntıları.
  • /integrations/cloudflare/security-and-operations/ — sunucu tarafı istek sahteciliği (SSRF) savunması, sabitleme ve operasyonel kılavuz.
  • /integrations/cloudflare/troubleshooting/ — istisnalara eşlenen hata modları.