Zum Inhalt springen

NextPDF-Symfony-Bundle installieren

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.

Die folgenden Versionsbeschränkungen stammen aus der composer.json des Bundles.

AbhängigkeitEinschrä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.

Diese Pakete sind unter suggest in der composer.json des Bundles deklariert. Sind sie vorhanden, schalten sie zusätzliches Verhalten frei:

PaketFügt hinzu
nextpdf/artisanChrome-CDP-HTML-Rendering, zur Compile-Zeit automatisch erkannt
nextpdf/premiumPDF/A-Archivierung und digitales Signieren (installiert die Pro-Stufe), zur Compile-Zeit automatisch erkannt
symfony/messengerAsynchrone PDF-Erzeugung über den Messenger-Handler
Terminal-Fenster
composer require nextpdf/symfony

Das 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 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).

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.

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.

Stellen Sie sicher, dass der Container die Bundle-Services kennt:

Terminal-Fenster
php bin/console debug:container nextpdf

Es 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:

Terminal-Fenster
php bin/console debug:config nextpdf

Der Befehl gibt den zusammengeführten Konfigurationsbaum aus, also Ihre Überschreibungen plus die Standardwerte.

  • 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 der composer.json Ihrer Anwendung, falls Sie eine deterministische Engine-Version benötigen.
  • Absicherung gegen fehlende Erweiterung — wenn php bin/console beim Start mit einer Meldung zu ext-mbstring oder ext-zlib fehlschlägt, aktivieren Sie die genannte Erweiterung in php.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.

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.

SpecKlauselreference_idAussage
PSR-4psr_4_autoload#x1.x2.p5Abbildung von Namespace-Präfix auf Verzeichnis durch den Autoloader
  • /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.