NextPDF Symfony paketini yapılandırma
Genel bakış
“Genel bakış” başlıklı bölümPaketin tüm davranışını nextpdf kök anahtarı altında, config/packages/nextpdf.yaml dosyasında yapılandırın. Her anahtarın bir varsayılanı vardır; bu nedenle yalnızca değiştirmek istediğiniz değerleri ayarlamanız yeterlidir. Bu sayfa Configuration.php dosyasını birebir yansıtır.
Yapılandırma ağacı
“Yapılandırma ağacı” başlıklı bölümNextPDF\Symfony\DependencyInjection\Configuration şemayı tanımlar. Geçersiz değerler, container’ın derlenmesi sırasında Symfony InvalidConfigurationException ile sonuçlanır.
Üst düzey anahtarlar
“Üst düzey anahtarlar” başlıklı bölüm| Anahtar | Tür | Varsayılan | Doğrulama |
|---|---|---|---|
page_format | enum | A4 | şunlardan biri: A4, A3, A5, Letter, Legal, Tabloid |
orientation | enum | P | şunlardan biri: P, L |
unit | enum | mm | şunlardan biri: pt, mm, cm, in |
pdfa | scalar | null | şunlardan biri: null, 4, 4e, 4f |
fonts_path | scalar | %kernel.project_dir%/resources/fonts | — |
cache_path | scalar | %kernel.cache_dir%/nextpdf | — |
image_cache_mb | integer | 50 | en az 0 |
font_cache_locking | boolean | true | — |
preload_fonts | dize listesi | [] | — |
icc_profile
“icc_profile” başlıklı bölüm| Anahtar | Tür | Varsayılan |
|---|---|---|
icc_profile.rgb | scalar | null |
icc_profile.cmyk | scalar | null |
defaults
“defaults” başlıklı bölümBu bölüm, PdfFactory tarafından oluşturulan her belgeye uygulanır.
| Anahtar | Tür | Varsayılan |
|---|---|---|
defaults.creator | scalar | NextPDF |
defaults.author | scalar | (boş) |
defaults.language | scalar | en |
defaults.margin_top | float | 10.0 |
defaults.margin_right | float | 10.0 |
defaults.margin_bottom | float | 10.0 |
defaults.margin_left | float | 10.0 |
defaults.font_family | scalar | dejavusans |
defaults.font_size | float | 12.0 |
defaults.trim_box | değişken | null |
defaults.bleed_box | değişken | null |
PdfFactory bu bölümden creator, author ve language değerlerini okur ve bunları her yeni belgeye uygular. Paket, kalan anahtarları motorun kullanması için container parametreleri olarak saklar.
artisan
“artisan” başlıklı bölümYalnızca nextpdf/artisan yüklü olup algılanmışsa uygulanır.
| Anahtar | Tür | Varsayılan |
|---|---|---|
artisan.chrome_binary | scalar | null |
artisan.render_timeout | integer | 30 |
artisan.default_css | scalar | (boş) |
artisan.no_sandbox | boolean | false |
artisan.max_html_size | integer | 5000000 |
signature
“signature” başlıklı bölümYalnızca nextpdf/premium yüklüyse uygulanır. Paket ve Pro katmanı mevcut olduğunda desteklenen imzalama yapılandırması temel B-B profilidir. level düğümü, daha geniş NextPDF yapılandırma ailesiyle şema uyumluluğu için aşağıdaki dize değerlerini kabul eder. Bu paket B-B imzalama yeteneği sağlar. B-B dışındaki profiller NextPDF Premium belgelerinde ayrıca belgelenir; bu sayfada onlar için destek iddiasında bulunulmaz.
| Anahtar | Tür | Varsayılan | Doğrulama |
|---|---|---|---|
signature.enabled | boolean | false | — |
signature.certificate | scalar | null | — |
signature.private_key | scalar | null | — |
signature.password | scalar | (boş) | — |
signature.extra_certs | dize listesi | [] | — |
signature.level | enum | B-B | kabul edilen değer kümesi: B-B, B-T, B-LT, B-LTA (B-B sağlanır; B-T/B-LT/B-LTA şema uyumluluğu değerleridir, sağlanan Pro yeteneği değildir) |
Derleyici geçişi, imzalayıcı servisini yalnızca signature.enabled true ve signature.certificate ayarlandığında kaydeder; aksi takdirde bölüm etkisizdir.
Zaman Damgası Yetkilisi (Time Stamp Authority, TSA) istemci yapılandırmasıdır; yapılandırıldığında Pro imzalama tarafından kullanılır.
| Anahtar | Tür | Varsayılan |
|---|---|---|
tsa.url | scalar | null |
tsa.username | scalar | (boş) |
tsa.password | scalar | (boş) |
tsa.cert | scalar | null |
tsa.key | scalar | null |
tsa.timeout | integer | 30 |
tsa.allow_insecure_http | boolean | false |
tsa.pinned_public_keys | dize listesi | [] |
tsa.warn_on_key_rotation | boolean | true |
Paket, bir TSA istemci servisini yalnızca tsa.url ayarlandığında kaydeder.
ocsp_cache
“ocsp_cache” başlıklı bölüm| Anahtar | Tür | Varsayılan |
|---|---|---|
ocsp_cache.enabled | boolean | true |
ocsp_cache.ttl | integer | 86400 |
ocsp_cache.directory | scalar | null |
messenger
“messenger” başlıklı bölümAsenkron oluşturma ayarlarıdır; symfony/messenger yüklendiğinde kullanılır.
| Anahtar | Tür | Varsayılan |
|---|---|---|
messenger.transport | scalar | async |
messenger.timeout | integer | 120 |
messenger.retries | integer | 3 |
Referans yapılandırma
“Referans yapılandırma” başlıklı bölümHer bölümü varsayılan değerleriyle gösteren bir yapılandırma dosyası:
nextpdf: page_format: A4 orientation: P unit: mm pdfa: ~ fonts_path: '%kernel.project_dir%/resources/fonts' cache_path: '%kernel.cache_dir%/nextpdf' image_cache_mb: 50 font_cache_locking: true preload_fonts: [] icc_profile: rgb: ~ cmyk: ~ defaults: creator: NextPDF author: '' language: en margin_top: 10.0 margin_right: 10.0 margin_bottom: 10.0 margin_left: 10.0 font_family: dejavusans font_size: 12.0 trim_box: ~ bleed_box: ~ artisan: chrome_binary: ~ render_timeout: 30 default_css: '' no_sandbox: false max_html_size: 5000000 signature: enabled: false certificate: ~ private_key: ~ password: '' extra_certs: [] level: B-B tsa: url: ~ username: '' password: '' cert: ~ key: ~ timeout: 30 allow_insecure_http: false pinned_public_keys: [] warn_on_key_rotation: true ocsp_cache: enabled: true ttl: 86400 directory: ~ messenger: transport: async timeout: 120 retries: 3Container servisleri ve takma adları
“Container servisleri ve takma adları” başlıklı bölümPaket, servis tanımlarını config/services.php dosyasından yükler. Aşağıdaki tablo bu dosyayı birebir yansıtır.
| Servis kimliği | Paylaşımlı | Genel | Notlar |
|---|---|---|---|
NextPDF\Typography\FontRegistry | evet | — | değerini nextpdf.fonts_path parametresinden alır; isteğe bağlı PHP Standard Recommendation 3 (PSR-3) günlükçüsü |
NextPDF\Contracts\FontRegistryInterface | (takma ad) | evet | şunun takma adı: FontRegistry |
NextPDF\Graphics\ImageRegistry | evet | — | sınırlı LRU (en uzun süredir kullanılmayanı çıkarma) yapısı; kernel.reset etiketli (reset) |
NextPDF\Core\DocumentFactory | evet | — | iki kayıt defterini paylaşır |
NextPDF\Contracts\DocumentFactoryInterface | (takma ad) | evet | şunun takma adı: DocumentFactory |
NextPDF\Symfony\Service\PdfFactory | evet | evet | şunları okur: defaults, pdfa ve artisan parametreleri |
NextPDF\Contracts\PdfDocumentInterface | hayır | evet | fabrika [PdfFactory, create] |
NextPDF\Core\Document | (takma ad) | — | şunun takma adı: PdfDocumentInterface |
nextpdf.document | (takma ad) | evet | şunun takma adı: PdfDocumentInterface |
NextPDF\Symfony\Http\PdfResponse | — | evet | durumsuz yardımcı |
Paket ayrıca EInvoice sözleşme bağlamalarını (EmbedderInterface, ValidatorInterface, ProfileInterface, SchematronRunnerInterface) yalnızca ilgili Premium uygulama sınıfları mevcut olduğunda kaydeder. Her servis paylaşımsızdır; bu nedenle çağıran taraflar yeni bir örnek alır. Her çağrıya ait ayrıştırıcı durumu istekler arasında asla sızmaz.
Paylaşımlı ile paylaşımsız karşılaştırması
“Paylaşımlı ile paylaşımsız karşılaştırması” başlıklı bölümnextpdf.document (ve takma adları) paylaşımsızdır: container’ın her çözümlemesi ayrı bir belge döndürür. PHP Standard Recommendation 11 (PSR-11) kapsamında bir container, aynı tanımlayıcıyla yapılan ardışık get() çağrılarında farklı bir değer döndürebilir; bkz. PSR-11 §1.1.2. Yazı tipi kayıt defteri paylaşımlıdır ve ön ısıtmadan sonra kilitlenir. Yapısal yazı tipi verileri işlem başına bir kez ayrıştırılır ve istek sırasında değiştirilemez.
Hem FontRegistry hem de ImageRegistry servisleri isteğe bağlı bir Psr\Log\LoggerInterface kabul eder; Symfony bunu nullOnInvalid() ile bağlar. Günlükçü, PSR-3 günlükçü sözleşmesiyle tutarlı olarak isteğe bağlı, değiştirilebilir bir iş birlikçisi olarak kalır.
Otomatik bağlama
“Otomatik bağlama” başlıklı bölümPdfFactory, PdfResponse, belge fabrikası arabirimi ve yazı tipi kayıt defteri arabirimi geneldir. Bunlar container’dan alınabilir veya otomatik bağlanan denetleyicilerde ve servislerde tür ipucu olarak belirtilebilir. NextPDF\Symfony\Service\PdfFactory için kurucu enjeksiyonu önerilen giriş noktasıdır.
Sınır durumları ve dikkat edilecek noktalar
“Sınır durumları ve dikkat edilecek noktalar” başlıklı bölüm- Pro olmadan
pdfaayarlanması — değer saklanır, ancak yoksayılır.PdfFactory, Portable Document Format/Archival (PDF/A) biçimini yalnızca Pro uzantısı derleme zamanında algılandığında uygular. image_cache_mb: 0— geçerlidir; görüntü LRU önbelleğini devre dışı bırakır. Negatif değerler derleme zamanında reddedilir.signature.certificateolmadansignature.enabled: true— imzalayıcı servisi kaydedilmez; yapılandırma tasarım gereği sessizce etkisizdir.%kernel.*%yer tutucuları —fonts_pathvecache_pathvarsayılanları Symfony container parametrelerini kullanır; yalnızca tam yol gerektiğinde bunları mutlak yollarla geçersiz kılın.
Uygunluk
“Uygunluk” başlıklı bölümBu tablodaki her satır, bu sayfadaki normatif bir iddiadır ve kapılı standart geliştirme kuruluşu (SDO) külliyatından tam 64 onaltılık karakterlik bir reference_id değerine sabitlenmiştir. Külliyat bildirimi ve geri alma aktarımı dahil olmak üzere kaynak bilgisi _sidecars/rag-citations.yaml dosyasındadır.
| Belirtim | Madde | reference_id | İddia |
|---|---|---|---|
| PSR-11 | psr_11_container#1.1.2.p3.b | get() çözümleme başına farklı değerler döndürebilir | |
| PSR-3 | psr_3_logger#x3.p17 | İsteğe bağlı LoggerInterface iş birlikçisi |
Ticari bağlam
“Ticari bağlam” başlıklı bölümsignature ve tsa bölümleri yalnızca nextpdf/premium (Pro) yüklendiğinde uygulanır. Bu isteğe bağlı Pro yeteneği, burada belgelenen Core paketinde herhangi bir kod değişikliği gerektirmez. Bkz. </get-license/?intent=symfony-pro>.
Ayrıca bkz.
“Ayrıca bkz.” başlıklı bölüm- /integrations/symfony/install/ — paketi yükleyip kaydedin.
- /integrations/symfony/overview/ — yetenek özetini gözden geçirin.
- /integrations/symfony/production-usage/ — worker güvenliği ve asenkron desenler.
- /integrations/symfony/boot-and-discovery/ — yapılandırmanın açılış sırasında nasıl çözümlendiğini görün.