コンテンツにスキップ

NextPDF Symfony バンドルのインストール

Composer でバンドルをインストールします。Symfony Flex を使用するアプリケーションでは、バンドルは自動的に登録されます。Flex を使用しないアプリケーションでは、config/bundles.php で一度だけ登録します。

以下の制約は、バンドルの composer.json に基づきます。

依存パッケージ制約
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

さらにバンドルは、コンテナのビルド時に 2 つの PHP 拡張機能をチェックします。対象は ext-mbstringext-zlib です。どちらも、サポート対象のすべての PHP ランタイムで有効になっています。いずれかが存在しない場合、このチェックは明確なメッセージを出して即座に失敗します。

これらのパッケージは、バンドルの composer.json 内の suggest で宣言されています。利用できる場合は、追加の動作が有効になります。

パッケージ追加される機能
nextpdf/artisanChrome CDP による HTML レンダリング。コンパイル時の自動検出
nextpdf/premiumPDF/A アーカイブとデジタル署名(Pro ティアのインストール)。コンパイル時の自動検出
symfony/messengerMessenger ハンドラーによる非同期 PDF 生成
Terminal window
composer require nextpdf/symfony

バンドルは、PSR-4 プレフィックス NextPDF\Symfony\ 配下でオートロードされ、src/Symfony/ にマッピングされます。このマッピングは composer.jsonautoload.psr-4 で宣言されています。Composer が生成するオートローダーは、PSR-4 オートローダー仕様の定義どおり、名前空間プレフィックスを対応するベースディレクトリにマッピングします(PSR-4 §2 を参照)。

バンドルには、composer.json 内に自動登録用のヒントが含まれています。

{
"extra": {
"symfony": {
"bundles": {
"NextPDF\\Symfony\\NextPdfBundle": "all"
}
}
}
}

Flex が有効なアプリケーションでは、このエントリにより、バンドルがすべての環境向けに config/bundles.php へ追加されます(all 環境)。このファイルを手動で編集する必要はありません。登録モデルについては、Symfony の公式バンドルドキュメント(https://symfony.com/doc/current/bundles.html)を参照してください。

アプリケーションで Symfony Flex を使用していない場合は、config/bundles.php にバンドルを手動で追加します。

return [
// ... other bundles
NextPDF\Symfony\NextPdfBundle::class => ['all' => true],
];

バンドルクラスは NextPDF\Symfony\NextPdfBundle です。これは Symfony の Symfony\Component\HttpKernel\Bundle\Bundle 基底クラスを継承します。バンドルの getPath() はパッケージルートを返します。その build() メソッドは OptionalExtensionPass コンパイラーパスを登録します。

バンドルの設定エイリアスは nextpdf です。config/packages/nextpdf.yaml を作成します。公開後は、Flex レシピがデフォルトのコピーをここに自動配置します。組み込みのデフォルトだけに依存する最小限のファイルは、次のようになります。

nextpdf: ~

すべてのキーにデフォルトがあるため、空の設定でも有効です。/integrations/symfony/configuration/ ページでは、設定ツリー全体を説明しています。

コンテナがバンドルのサービスを認識しているか確認します。

Terminal window
php bin/console debug:container nextpdf

表示されるサービスには、nextpdf.document エイリアスと NextPDF\Symfony\Service\PdfFactory が含まれているはずです。解決済みの設定を確認するには、次を実行します。

Terminal window
php bin/console debug:config nextpdf

これにより、独自のオーバーライドとデフォルトを合わせた、マージ済みの設定ツリーが出力されます。

  • コア制約の範囲 — バンドルは nextpdf/core^3.0 || ^5.2 を受け入れます。 Composer は、依存グラフ上の他の条件を満たすいずれか一方を解決します。決定論的なエンジンバージョンが必要な場合は、アプリケーションの composer.json で単一のメジャーバージョンに固定してください。
  • 拡張機能欠如のチェックphp bin/console が起動時に ext-mbstring または ext-zlib に関するメッセージを出して失敗する場合は、該当する拡張機能を php.ini で有効にしてください。これは意図的なフェイルファスト動作であり、バンドルの不具合ではありません。
  • Flex がバンドルを登録しなかった — Composer のキャッシュをクリアしてから再インストールします。Flex を使用しない場合は、手動で config/bundles.php に追加する手順にフォールバックしてください。

各行はこのページに示されている規範的な主張であり、ゲート付き SDO コーパスの完全な 64 桁の 16 進 reference_id に紐付けられています。来歴は _sidecars/rag-citations.yaml にあります。対象となる来歴は、コーパスマニフェストと取得トランスポートです。

仕様条項リファレンス ID主張
PSR-4psr_4_autoload#x1.x2.p5オートローダーの名前空間プレフィックスからディレクトリへのマッピング
  • /integrations/symfony/overview/ — バンドルが提供する機能。
  • /integrations/symfony/configuration/ — 設定ツリー全体とサービステーブル。
  • /integrations/symfony/quickstart/ — 最初に動かせるコントローラー。
  • /integrations/symfony/boot-and-discovery/ — ディスカバリーとブートシーケンスの詳細。