De NextPDF Symfony-bundle configureren
In het kort
Sectie met titel “In het kort”Configureer het volledige gedrag van de bundle onder de hoofdsleutel nextpdf in config/packages/nextpdf.yaml. Elke sleutel heeft een standaardwaarde, dus je hoeft alleen de waarden in te stellen die je wilt wijzigen. Deze pagina komt exact overeen met Configuration.php.
Configuratieboom
Sectie met titel “Configuratieboom”NextPDF\Symfony\DependencyInjection\Configuration definieert het schema. Ongeldige waarden laten de containerbuild mislukken met een Symfony InvalidConfigurationException.
Sleutels op het hoogste niveau
Sectie met titel “Sleutels op het hoogste niveau”| Sleutel | Type | Standaardwaarde | Validatie |
|---|---|---|---|
page_format | enum | A4 | een van A4, A3, A5, Letter, Legal, Tabloid |
orientation | enum | P | een van P, L |
unit | enum | mm | een van pt, mm, cm, in |
pdfa | scalar | null | een van null, 4, 4e, 4f |
fonts_path | scalar | %kernel.project_dir%/resources/fonts | — |
cache_path | scalar | %kernel.cache_dir%/nextpdf | — |
image_cache_mb | integer | 50 | minimum 0 |
font_cache_locking | boolean | true | — |
preload_fonts | lijst met strings | [] | — |
icc_profile
Sectie met titel “icc_profile”| Key | Type | Default |
|---|---|---|
icc_profile.rgb | scalar | null |
icc_profile.cmyk | scalar | null |
defaults
Sectie met titel “defaults”Geldt voor elk document dat PdfFactory produceert.
| Key | Type | Default |
|---|---|---|
defaults.creator | scalar | NextPDF |
defaults.author | scalar | (leeg) |
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 | variable | null |
defaults.bleed_box | variable | null |
PdfFactory leest creator, author en language uit deze sectie en past ze toe op elk nieuw document. De bundle slaat de overige sleutels op als containerparameters voor de engine.
artisan
Sectie met titel “artisan”Geldt alleen wanneer nextpdf/artisan is geïnstalleerd en gedetecteerd.
| Key | Type | Default |
|---|---|---|
artisan.chrome_binary | scalar | null |
artisan.render_timeout | integer | 30 |
artisan.default_css | scalar | (leeg) |
artisan.no_sandbox | boolean | false |
artisan.max_html_size | integer | 5000000 |
signature
Sectie met titel “signature”Geldt alleen wanneer nextpdf/premium is geïnstalleerd. Wanneer de bundle en de Pro-laag aanwezig zijn, is de ondersteunde ondertekeningsconfiguratie het baseline B-B-profiel. De node level accepteert de onderstaande stringwaarden voor schemacompatibiliteit met de bredere NextPDF-configuratiefamilie. Deze bundle levert ondertekeningsmogelijkheden voor B-B. Profielen buiten B-B worden afzonderlijk gedocumenteerd in de NextPDF Premium-documentatie; ondersteuning daarvoor wordt hier niet geclaimd.
| Key | Type | Default | Validation |
|---|---|---|---|
signature.enabled | boolean | false | — |
signature.certificate | scalar | null | — |
signature.private_key | scalar | null | — |
signature.password | scalar | (leeg) | — |
signature.extra_certs | lijst met strings | [] | — |
signature.level | enum | B-B | geaccepteerde set: B-B, B-T, B-LT, B-LTA (B-B geleverd; B-T/B-LT/B-LTA zijn schemacompatibiliteitswaarden, geen geleverde Pro-mogelijkheid) |
De compiler-pass registreert alleen een signer-service wanneer signature.enabled true is en signature.certificate is ingesteld; anders is de sectie inert.
Configuratie van de Time Stamp Authority (TSA)-client, gebruikt door Pro-ondertekening wanneer die is geconfigureerd.
| Key | Type | Default |
|---|---|---|
tsa.url | scalar | null |
tsa.username | scalar | (leeg) |
tsa.password | scalar | (leeg) |
tsa.cert | scalar | null |
tsa.key | scalar | null |
tsa.timeout | integer | 30 |
tsa.allow_insecure_http | boolean | false |
tsa.pinned_public_keys | lijst met strings | [] |
tsa.warn_on_key_rotation | boolean | true |
De bundle registreert alleen een TSA-clientservice wanneer tsa.url is ingesteld.
ocsp_cache
Sectie met titel “ocsp_cache”| Key | Type | Default |
|---|---|---|
ocsp_cache.enabled | boolean | true |
ocsp_cache.ttl | integer | 86400 |
ocsp_cache.directory | scalar | null |
messenger
Sectie met titel “messenger”Instellingen voor asynchrone generatie, gebruikt wanneer symfony/messenger is geïnstalleerd.
| Key | Type | Default |
|---|---|---|
messenger.transport | scalar | async |
messenger.timeout | integer | 120 |
messenger.retries | integer | 3 |
Referentieconfiguratie
Sectie met titel “Referentieconfiguratie”Een configuratiebestand dat elke sectie met de standaardwaarden toont:
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: 3Containerservices en aliassen
Sectie met titel “Containerservices en aliassen”De bundle laadt de servicedefinities uit config/services.php. De onderstaande tabel komt exact overeen met dat bestand.
| Service-id | Gedeeld | Publiek | Opmerkingen |
|---|---|---|---|
NextPDF\Typography\FontRegistry | ja | — | opgebouwd uit nextpdf.fonts_path; optionele PHP Standard Recommendation 3 (PSR-3)-logger |
NextPDF\Contracts\FontRegistryInterface | (alias) | ja | alias van FontRegistry |
NextPDF\Graphics\ImageRegistry | ja | — | begrensde least-recently-used (LRU); getagd kernel.reset (reset) |
NextPDF\Core\DocumentFactory | ja | — | deelt de twee registry’s |
NextPDF\Contracts\DocumentFactoryInterface | (alias) | ja | alias van DocumentFactory |
NextPDF\Symfony\Service\PdfFactory | ja | ja | leest de parameters defaults, pdfa en artisan |
NextPDF\Contracts\PdfDocumentInterface | nee | ja | factory [PdfFactory, create] |
NextPDF\Core\Document | (alias) | — | alias van PdfDocumentInterface |
nextpdf.document | (alias) | ja | alias van PdfDocumentInterface |
NextPDF\Symfony\Http\PdfResponse | — | ja | stateless helper |
De bundle registreert ook EInvoice-contractbindingen (EmbedderInterface, ValidatorInterface, ProfileInterface, SchematronRunnerInterface) alleen wanneer de bijbehorende Premium-implementatieklassen bestaan. Elke service is niet-gedeeld, dus aanroepers ontvangen telkens een nieuwe instantie. Parserstatus van één aanroep lekt nooit naar andere requests.
Gedeeld versus niet-gedeeld
Sectie met titel “Gedeeld versus niet-gedeeld”nextpdf.document (en de aliassen ervan) is niet-gedeeld: elke containerresolutie retourneert een afzonderlijk document. Onder PHP Standard Recommendation 11 (PSR-11) kan een container bij opeenvolgende get()-aanroepen met dezelfde identifier een andere waarde retourneren; zie PSR-11 §1.1.2. De font-registry is gedeeld en wordt na de warm-up vergrendeld. Structurele lettertypegegevens worden eenmaal per proces geparseerd en kunnen tijdens een request niet worden gewijzigd.
De services FontRegistry en ImageRegistry accepteren een optionele Psr\Log\LoggerInterface; Symfony bindt deze met nullOnInvalid(). De logger blijft een optionele, verwisselbare collaborator, in lijn met het PSR-3 logger-contract.
Autowiring
Sectie met titel “Autowiring”PdfFactory, PdfResponse, de document-factory-interface en de font-registry-interface zijn publiek. Je kunt ze uit de container ophalen of als type-hint gebruiken in autowired controllers en services. Constructorinjectie van NextPDF\Symfony\Service\PdfFactory is het aanbevolen toegangspunt.
Randgevallen en valkuilen
Sectie met titel “Randgevallen en valkuilen”pdfaingesteld zonder Pro — de waarde wordt opgeslagen maar genegeerd.PdfFactorypast Portable Document Format/Archival (PDF/A) alleen toe wanneer de Pro-extensie tijdens het compileren wordt gedetecteerd.image_cache_mb: 0— geldig; schakelt de afbeeldings-LRU-cache uit. Negatieve waarden worden bij het bouwen geweigerd.signature.enabled: truezondersignature.certificate— de signer-service wordt niet geregistreerd; de configuratie blijft bewust stilzwijgend inert.%kernel.*%-placeholders — de standaardwaarden vanfonts_pathencache_pathgebruiken Symfony-containerparameters; overschrijf alleen met absolute paden wanneer het letterlijke pad vereist is.
Conformiteit
Sectie met titel “Conformiteit”Elke rij is een normatieve claim op deze pagina, vastgepind aan een volledige 64-hex reference_id uit het gated corpus van de standards development organization (SDO). De herkomst, inclusief corpus-manifest en retrieval-transport, staat in _sidecars/rag-citations.yaml.
| Spec | Clausule | reference_id | Claim |
|---|---|---|---|
| PSR-11 | psr_11_container#1.1.2.p3.b | get() kan per resolutie verschillende waarden retourneren | |
| PSR-3 | psr_3_logger#x3.p17 | Optionele LoggerInterface-collaborator |
Commerciële context
Sectie met titel “Commerciële context”De secties signature en tsa zijn alleen van toepassing wanneer nextpdf/premium (Pro) is geïnstalleerd. Voor deze optionele Pro-mogelijkheid is geen codewijziging nodig in de hier gedocumenteerde Core-bundle. Zie </get-license/?intent=symfony-pro>.
Zie ook
Sectie met titel “Zie ook”- /integrations/symfony/install/ — installeer en registreer de bundle.
- /integrations/symfony/overview/ — bekijk het overzicht van de mogelijkheden.
- /integrations/symfony/production-usage/ — worker-veiligheid en asynchrone patronen.
- /integrations/symfony/boot-and-discovery/ — zie hoe de configuratie tijdens het opstarten wordt bepaald.