NextPDF Laravel パッケージのインストール
Composer で nextpdf/laravel をインストールします。自動検出により、サービスプロバイダーは自動的に登録されます。続いて、編集できるように構成ファイルを公開します。このパッケージは、任意の NextPDF 拡張機能も自動的に検出します。
インストール
「インストール」という見出しのセクションcomposer require nextpdf/laravelこのパッケージは、composer.json で次の制約を宣言します。
| 要件 | 制約 |
|---|---|
| PHP | >=8.4 <9.0 |
laravel/framework | ^12.0 |
nextpdf/core | ^3.0 || ^5.2 |
psr/http-client | ^1.0 |
このパッケージは、単一の PSR-4 マップでオートロードされます。NextPDF\Laravel\ プレフィックスは src/Laravel/ に resolve(解決)されます。これは、PSR-4 のプレフィックスをベースディレクトリへ対応付けるルール(PSR-4 §3)に従うものです。
概念的な概要
「概念的な概要」という見出しのセクションcomposer require コマンドを実行すると、Laravel のパッケージ自動検出が、このパッケージの extra.laravel ブロック(composer.json 内)を読み取ります。続いて、プロバイダーとファサードのエイリアスが自動的に登録されるため、config/app.php を手動で編集する必要はありません。該当するブロックは次のとおりです。
{ "extra": { "laravel": { "providers": [ "NextPDF\\Laravel\\NextPdfServiceProvider" ], "aliases": { "Pdf": "NextPDF\\Laravel\\Facades\\Pdf" } } }}この仕組みは、Laravel のパッケージドキュメントで説明されています。extra.laravel.providers 配列はサービスプロバイダーを自動登録し、extra.laravel.aliases 配列はファサードのエイリアスを自動登録します(Laravel 12 パッケージ開発ガイド、
https://laravel.com/docs/12.x/packages、取得日 2026-05-18)。
コードサンプル — クイックスタート
「コードサンプル — クイックスタート」という見出しのセクション構成ファイルを公開するには、nextpdf-config タグを使用します。このタグ名は NextPdfServiceProvider::boot() で定義されています。
php artisan vendor:publish --tag=nextpdf-configこれにより、config/nextpdf.php がアプリケーションに書き込まれます。また、プロバイダーは register() の実行中に、パッケージのデフォルト構成を nextpdf キー配下へマージするため、公開前でもパッケージは動作します。公開は、アプリケーション内でそのファイルを編集できるようにするためだけの手順です。
プロバイダーが検出されたことを確認します。
php artisan package:discover --ansiコードサンプル — 本番環境
「コードサンプル — 本番環境」という見出しのセクション再現可能なデプロイのために、制約を固定します。プロバイダーを自分で登録する場合に限り、検出を明示的に無効化します。
{ "extra": { "laravel": { "dont-discover": [ "nextpdf/laravel" ] } }}検出を無効化した場合は、bootstrap/providers.php でプロバイダーを手動で登録します。
<?php
declare(strict_types=1);
return [ App\Providers\AppServiceProvider::class, NextPDF\Laravel\NextPdfServiceProvider::class,];任意の拡張機能
「任意の拡張機能」という見出しのセクションこのパッケージは、任意のコンパニオンパッケージを suggest(composer.json 内)に列挙します。実行時には、それらを自動的に検出します。
| パッケージ | インストール時の効果 | 検出ポイント |
|---|---|---|
nextpdf/artisan | Chrome ファクトリークラスが存在する場合、Chrome CDP HTML レンダラーの構成がドキュメントバインディングに適用される | NextPdfServiceProvider::register() が Chrome ブラウザーファクトリークラスを確認する |
nextpdf/premium | 署名(PAdES B-B)、PDF/A アーカイブ、および e-invoice コントラクトの具象が、既存のコンテナーキー経由で解決される | 最初のコンテナー解決時に遅延的に解決される |
拡張機能も同じ方法でインストールします。
composer require nextpdf/artisan追加の設定は必要ありません。プロバイダーは、次回の登録時に拡張機能を検出します。
エッジケースと注意点
「エッジケースと注意点」という見出しのセクション- 公開処理はべき等です。既存の
config/nextpdf.phpを上書きすることはありません。意図的に上書きする場合は、--forceを追加します。 - プロバイダーは遅延読み込みされるため、パッケージの確認には
php artisan package:discoverで十分です。バインディング自体は、最初に解決されるまで現れません。 - このパッケージは、
nextpdf/coreを、^3.0と^5.2の両方のメジャーラインでサポートしています。core の制約は、アプリケーションが固定するラインに合わせます。Laravel アダプターのインターフェイスは、両者で同一です。 - README のバッジと
composer.jsonは、どちらも Apache-2.0 を示しています。このパッケージは、LGPL-3.0-or-later から再ライセンスされました。移行前にタグ付けされたバージョンは、以前のライセンスのままです(CHANGELOG.mdを参照してください)。
パフォーマンス
「パフォーマンス」という見出しのセクション依存関係の中では、nextpdf/core の解決が composer require のコストの大部分を占めます。すべてのバインディングが遅延クロージャーであるため、プロバイダーの登録による測定可能なブートコストの増加はありません。最初の解決時の構築コストについては、/integrations/laravel/boot-and-discovery/. に記載されています。
セキュリティに関する注意事項
「セキュリティに関する注意事項」という見出しのセクション正規の Packagist パッケージ nextpdf/laravel からインストールしてください。このパッケージには、SPDX REUSE ヘッダーと Apache-2.0 の NOTICE ファイルが付属しています。composer.json で制約を固定し、composer.lock をコミットして、デプロイされたワーカーが検証済みの依存関係ツリーを解決するようにします。
| 主張 | 出典 | 条項 | リファレンス ID |
|---|---|---|---|
| PSR-4 プレフィックスがベースディレクトリにマッピングされる | PSR-4 オートローダー | §3 |
Laravel の自動検出キー名は、公式の Laravel 12 パッケージ開発ドキュメント(https://laravel.com/docs/12.x/packages、取得日 2026-05-18)との照合で裏付けられています。
商用に関する補足
「商用に関する補足」という見出しのセクションnextpdf/premium は、署名、PDF/A、および e-invoice の具象を追加します。これは任意の Enterprise 機能です。ここで説明している Core パッケージでは、これを導入するためのコード変更は不要です。https://nextpdf.dev/get-license/?intent=laravel-signing を参照してください。
- /integrations/laravel/overview/ — パッケージのアーキテクチャとバインディングテーブル
- /integrations/laravel/quickstart/ — 最初に動かせるコントローラー
- /integrations/laravel/configuration/ — すべての構成キーの解説
- /integrations/laravel/boot-and-discovery/ — 検出の内部処理とバインディングのライフタイム