NextPDF-Symfony-Bundle installieren
Auf einen Blick
Abschnitt betitelt „Auf einen Blick“Installieren Sie das Bundle mit Composer. In einer Symfony-Flex-Anwendung registriert es sich automatisch. In einer Anwendung ohne Flex registrieren Sie es einmalig in config/bundles.php.
Anforderungen
Abschnitt betitelt „Anforderungen“Die folgenden Versionsbeschränkungen stammen aus der composer.json des Bundles.
| Abhängigkeit | Einschränkung |
|---|---|
php | >=8.4 <9.0 |
nextpdf/core | ^3.0 || ^5.2 |
symfony/framework-bundle | ^7.2 |
symfony/dependency-injection | ^7.2 |
symfony/config | ^7.2 |
symfony/http-foundation | ^7.2 |
psr/log | ^3.0 |
Zusätzlich prüft das Bundle beim Container-Build zwei PHP-Erweiterungen: ext-mbstring und ext-zlib. Beide sind in jeder unterstützten PHP-Laufzeit aktiviert. Die Prüfung schlägt mit einer klaren Meldung sofort fehl, falls eine davon fehlt.
Optionale Pakete
Abschnitt betitelt „Optionale Pakete“Diese Pakete sind unter suggest in der composer.json des Bundles deklariert. Sind sie vorhanden, schalten sie zusätzliches Verhalten frei:
| Paket | Fügt hinzu |
|---|---|
nextpdf/artisan | Chrome-CDP-HTML-Rendering, zur Compile-Zeit automatisch erkannt |
nextpdf/premium | PDF/A-Archivierung und digitales Signieren (installiert die Pro-Stufe), zur Compile-Zeit automatisch erkannt |
symfony/messenger | Asynchrone PDF-Erzeugung über den Messenger-Handler |
Mit Composer installieren
Abschnitt betitelt „Mit Composer installieren“composer require nextpdf/symfonyDas Bundle wird unter dem PSR-4-Präfix NextPDF\Symfony\ automatisch geladen und auf src/Symfony/ abgebildet. Diese Abbildung ist in composer.jsonautoload.psr-4 deklariert. Der von Composer generierte Autoloader bildet das Namespace-Präfix gemäß der PSR-4-Autoloader-Spezifikation auf dieses Basisverzeichnis ab — siehe PSR-4 §2.
Das Bundle registrieren
Abschnitt betitelt „Das Bundle registrieren“Symfony Flex (empfohlen)
Abschnitt betitelt „Symfony Flex (empfohlen)“Das Bundle enthält in der composer.json einen Hinweis für die automatische Registrierung:
{ "extra": { "symfony": { "bundles": { "NextPDF\\Symfony\\NextPdfBundle": "all" } } }}In einer Flex-fähigen Anwendung fügt dieser Eintrag das Bundle zu config/bundles.php für jede Umgebung (all) hinzu. Sie müssen die Datei nicht von Hand bearbeiten. Zum Registrierungsmodell siehe die offizielle Symfony-Bundle-Dokumentation (https://symfony.com/doc/current/bundles.html).
Manuelle Registrierung (ohne Flex)
Abschnitt betitelt „Manuelle Registrierung (ohne Flex)“Wenn Ihre Anwendung Symfony Flex nicht verwendet, fügen Sie das Bundle selbst zu config/bundles.php hinzu:
return [ // ... other bundles NextPDF\Symfony\NextPdfBundle::class => ['all' => true],];Die Bundle-Klasse ist NextPDF\Symfony\NextPdfBundle. Sie erweitert die Symfony-Basisklasse Symfony\Component\HttpKernel\Bundle\Bundle. getPath() des Bundles gibt das Paketwurzelverzeichnis zurück. Die build()-Methode registriert den Compiler-Pass OptionalExtensionPass.
Die Konfigurationsdatei bereitstellen
Abschnitt betitelt „Die Konfigurationsdatei bereitstellen“Der Konfigurationsalias des Bundles ist nextpdf. Erstellen Sie config/packages/nextpdf.yaml. Sobald es veröffentlicht ist, legt ein Flex-Recipe hier eine Standardkopie für Sie ab. Eine minimale Datei, die vollständig die eingebauten Standardwerte nutzt, sieht so aus:
nextpdf: ~Jeder Schlüssel hat einen Standardwert, sodass eine leere Konfiguration gültig ist. Die Seite /integrations/symfony/configuration/ dokumentiert den vollständigen Konfigurationsbaum.
Die Installation prüfen
Abschnitt betitelt „Die Installation prüfen“Stellen Sie sicher, dass der Container die Bundle-Services kennt:
php bin/console debug:container nextpdfEs sollten Services angezeigt werden, darunter der Alias nextpdf.document und NextPDF\Symfony\Service\PdfFactory. Um die aufgelöste Konfiguration zu inspizieren, führen Sie aus:
php bin/console debug:config nextpdfDer Befehl gibt den zusammengeführten Konfigurationsbaum aus, also Ihre Überschreibungen plus die Standardwerte.
Sonderfälle und Stolperfallen
Abschnitt betitelt „Sonderfälle und Stolperfallen“- Spanne der Core-Versionsbeschränkung — das Bundle akzeptiert
nextpdf/core^3.0 || ^5.2. Composer löst jeweils die Version auf, die den Rest Ihres Abhängigkeitsgraphen erfüllt. Pinnen Sie eine einzelne Hauptversion in dercomposer.jsonIhrer Anwendung, falls Sie eine deterministische Engine-Version benötigen. - Absicherung gegen fehlende Erweiterung — wenn
php bin/consolebeim Start mit einer Meldung zuext-mbstringoderext-zlibfehlschlägt, aktivieren Sie die genannte Erweiterung inphp.ini. Das ist beabsichtigtes Fail-Fast-Verhalten, kein Fehler des Bundles. - Flex hat das Bundle nicht registriert — leeren Sie den Composer-Cache und installieren Sie neu. Falls Sie Flex nicht verwenden, greifen Sie auf den manuellen
config/bundles.php-Schritt zurück.
Konformität
Abschnitt betitelt „Konformität“Jede Tabellenzeile steht für eine normative Aussage auf dieser Seite und ist an eine vollständige 64-Hex-reference_id aus dem gegateten SDO-Korpus gebunden. Die Provenance steht in _sidecars/rag-citations.yaml. Sie deckt das Korpus-Manifest und den Abruf-Transport ab.
| Spec | Klausel | reference_id | Aussage |
|---|---|---|---|
| PSR-4 | psr_4_autoload#x1.x2.p5 | Abbildung von Namespace-Präfix auf Verzeichnis durch den Autoloader |
Siehe auch
Abschnitt betitelt „Siehe auch“- /integrations/symfony/overview/ — was das Bundle bereitstellt.
- /integrations/symfony/configuration/ — vollständiger Konfigurationsbaum und Servicetabelle.
- /integrations/symfony/quickstart/ — erster lauffähiger Controller.
- /integrations/symfony/boot-and-discovery/ — Discovery- und Bootsequenz im Detail.