NextPDF Artisan'ın kurulumu
Bir bakışta
“Bir bakışta” başlıklı bölümComposer ile nextpdf/artisan paketini yükleyin. Composer, chrome-php/chrome çalışma zamanı bağımlılığını da yükler. Ardından PHP işlemine bir Chrome veya Chromium ikili dosyası sağlayın.
Kurulum
“Kurulum” başlıklı bölümcomposer require nextpdf/artisanPaket, composer.json dosyasında şu kısıtlamaları bildirir:
| Gereksinim | Kısıtlama | Notlar |
|---|---|---|
php | >=8.4 <9.0 | Yalnızca PHP 8.4 |
nextpdf/core | ^3.0 || ^5.2 | Açık kaynak NextPDF motoru |
chrome-php/chrome | ^1.15 | Chrome DevTools Protocol (CDP) istemci kitaplığı; geçişli bağımlılık olarak yüklenir |
psr/log | ^3.0 | İsteğe bağlı günlükleyici enjeksiyon noktası |
Composer, chrome-php/chrome paketini otomatik olarak çözümler. Composer, Chrome ikili dosyasını asla yüklemez; bu ikili dosya bir sistem bağımlılığıdır.
Chrome ikili dosyasını hazırlayın
“Chrome ikili dosyasını hazırlayın” başlıklı bölümKöprü, çalıştırılabilir bir Chrome veya Chromium ikili dosyası gerektirir. Varsayılan olarak chrome-php/chrome, yaygın dosya yollarında bir ikili dosya arar. Açıkça belirlenmiş bir yolu sabitlemek için bu yolu yapılandırma üzerinden verin. /integrations/artisan/configuration/ sayfasına ve özel /integrations/artisan/chrome-renderer-setup/ sayfasına bakın.
# Debian / Ubuntuapt-get install -y chromium
# RHEL / Fedoradnf install -y chromium
# macOS (Homebrew)brew install --cask chromiumİkili dosyayı uygulamaya bağlamadan önce, başsız (headless) modda çalıştığını doğrulayın:
chromium --headless --dump-dom about:blankBaşarılı bir çalıştırma, boş bir Document Object Model (DOM) belgesi yazdırır ve 0 çıkış koduyla sonlanır. Sıfır olmayan bir çıkış kodu, ikili dosyanın veya paylaşılan kitaplıklarının eksik olduğu anlamına gelir. Devam etmeden önce bunu düzeltin; köprü, aynı hatayı işleme sırasında bir ChromeRenderException olarak bildirir.
Paketin bağlandığını doğrulayın
“Paketin bağlandığını doğrulayın” başlıklı bölüm<?php
declare(strict_types=1);
use NextPDF\Artisan\ChromeRendererConfig;use NextPDF\Artisan\ChromeHtmlRenderer;
require __DIR__ . '/vendor/autoload.php';
$renderer = new ChromeHtmlRenderer(new ChromeRendererConfig());
echo $renderer->getHtmlSecurityPolicy()->getName(), PHP_EOL;// Prints: defaultBu örnek, işleyiciyi oluşturur ve Chrome’u başlatmadan varsayılan Hypertext Markup Language (HTML) güvenlik ilkesini okur. Otomatik yüklemenin ve nextpdf/core sözleşme bağlamalarının çözümlendiğini doğrular. (Davranış şu test tarafından doğrulanır: tests/Unit/Artisan/ChromeHtmlRendererTest.php::usesDefaultHtmlSecurityPolicyWhenNoneInjected.)
Konteyner kurulumları
“Konteyner kurulumları” başlıklı bölümDocker’da Chrome korumalı alanı (sandbox), ek çekirdek yetenekleri olmadan çoğu zaman işlem kimliği (PID) 1 / root olarak başlatılamaz. Paket, bu durum için bir noSandbox anahtarı sunar. Chrome korumalı alanını devre dışı bırakmanın gerçek bir güvenlik maliyeti vardır. /integrations/artisan/security-and-operations/ sayfası ve /integrations/artisan/chrome-renderer-setup/ sayfası bu güvenlik maliyetini ve sınırlarını belgeler. İlgili bölümü okumadan anahtarı ayarlamayın.
Uç durumlar ve dikkat edilecek noktalar
“Uç durumlar ve dikkat edilecek noktalar” başlıklı bölümchrome-php/chromevar ancak ikili dosya yok. Composer başarılı olur; ilk işleme denemesi birChromeRenderExceptionfırlatır ve başlatma hatasını sarmalar. Kitaplık denetimi, ikili dosya denetiminden ayrıdır.chrome-php/chromeyok. Kitaplık otomatik yükleyiciden kaldırılırsa,BrowserPool::getBrowser(), düzeltme için gereken tam komutla birlikte birChromeNotAvailableExceptionfırlatır. (Şu test tarafından doğrulanır:tests/Unit/Artisan/BrowserPoolTest.php::getBrowserThrowsWhenChromePhpPackageIsUnavailable.)- Sürüm kısıtlaması.
nextpdf/core: ^3.0 || ^5.2— Artisan, her iki ana core sürüm hattını da destekler. Uygulamanızın hedeflediği core sürümünü sabitleyin.
Güvenlik notları
“Güvenlik notları” başlıklı bölümKöprüyü kurmak, güven sınırına harici bir işlem (Chrome) ekler. Herhangi bir işleme yolunu kullanıcı tarafından sağlanan HTML’ye açmadan önce /integrations/artisan/security-and-operations/ sayfasını inceleyin.
Ayrıca bakınız
“Ayrıca bakınız” başlıklı bölüm- /integrations/artisan/overview/
- /integrations/artisan/configuration/
- /integrations/artisan/quickstart/
- /integrations/artisan/chrome-renderer-setup/
- /integrations/artisan/security-and-operations/