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-mbstring と ext-zlib です。どちらも、サポート対象のすべての PHP ランタイムで有効になっています。いずれかが存在しない場合、このチェックは明確なメッセージを出して即座に失敗します。
オプションパッケージ
「オプションパッケージ」という見出しのセクションこれらのパッケージは、バンドルの composer.json 内の suggest で宣言されています。利用できる場合は、追加の動作が有効になります。
| パッケージ | 追加される機能 |
|---|---|
nextpdf/artisan | Chrome CDP による HTML レンダリング。コンパイル時の自動検出 |
nextpdf/premium | PDF/A アーカイブとデジタル署名(Pro ティアのインストール)。コンパイル時の自動検出 |
symfony/messenger | Messenger ハンドラーによる非同期 PDF 生成 |
Composer でインストールする
「Composer でインストールする」という見出しのセクションcomposer require nextpdf/symfonyバンドルは、PSR-4 プレフィックス NextPDF\Symfony\ 配下でオートロードされ、src/Symfony/ にマッピングされます。このマッピングは composer.jsonautoload.psr-4 で宣言されています。Composer が生成するオートローダーは、PSR-4 オートローダー仕様の定義どおり、名前空間プレフィックスを対応するベースディレクトリにマッピングします(PSR-4 §2 を参照)。
バンドルを登録する
「バンドルを登録する」という見出しのセクションSymfony Flex(推奨方法)
「Symfony Flex(推奨方法)」という見出しのセクションバンドルには、composer.json 内に自動登録用のヒントが含まれています。
{ "extra": { "symfony": { "bundles": { "NextPDF\\Symfony\\NextPdfBundle": "all" } } }}Flex が有効なアプリケーションでは、このエントリにより、バンドルがすべての環境向けに config/bundles.php へ追加されます(all 環境)。このファイルを手動で編集する必要はありません。登録モデルについては、Symfony の公式バンドルドキュメント(https://symfony.com/doc/current/bundles.html)を参照してください。
手動登録(Flex なし)
「手動登録(Flex なし)」という見出しのセクションアプリケーションで 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/ ページでは、設定ツリー全体を説明しています。
インストールを検証する
「インストールを検証する」という見出しのセクションコンテナがバンドルのサービスを認識しているか確認します。
php bin/console debug:container nextpdf表示されるサービスには、nextpdf.document エイリアスと NextPDF\Symfony\Service\PdfFactory が含まれているはずです。解決済みの設定を確認するには、次を実行します。
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-4 | psr_4_autoload#x1.x2.p5 | オートローダーの名前空間プレフィックスからディレクトリへのマッピング |
- /integrations/symfony/overview/ — バンドルが提供する機能。
- /integrations/symfony/configuration/ — 設定ツリー全体とサービステーブル。
- /integrations/symfony/quickstart/ — 最初に動かせるコントローラー。
- /integrations/symfony/boot-and-discovery/ — ディスカバリーとブートシーケンスの詳細。