コンテンツにスキップ

NextPDF Laravel パッケージのインストール

Composer で nextpdf/laravel をインストールします。自動検出により、サービスプロバイダーは自動的に登録されます。続いて、編集できるように構成ファイルを公開します。このパッケージは、任意の NextPDF 拡張機能も自動的に検出します。

Terminal window
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 を手動で編集する必要はありません。該当するブロックは次のとおりです。

resource: composer.json (extra.laravel)
{
"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() で定義されています。

Terminal window
php artisan vendor:publish --tag=nextpdf-config

これにより、config/nextpdf.php がアプリケーションに書き込まれます。また、プロバイダーは register() の実行中に、パッケージのデフォルト構成を nextpdf キー配下へマージするため、公開前でもパッケージは動作します。公開は、アプリケーション内でそのファイルを編集できるようにするためだけの手順です。

プロバイダーが検出されたことを確認します。

Terminal window
php artisan package:discover --ansi

再現可能なデプロイのために、制約を固定します。プロバイダーを自分で登録する場合に限り、検出を明示的に無効化します。

resource: opt-out pattern (Laravel 12 packages guide)
{
"extra": {
"laravel": {
"dont-discover": [
"nextpdf/laravel"
]
}
}
}

検出を無効化した場合は、bootstrap/providers.php でプロバイダーを手動で登録します。

resource: bootstrap/providers.php (manual registration)
<?php
declare(strict_types=1);
return [
App\Providers\AppServiceProvider::class,
NextPDF\Laravel\NextPdfServiceProvider::class,
];

このパッケージは、任意のコンパニオンパッケージを suggestcomposer.json 内)に列挙します。実行時には、それらを自動的に検出します。

パッケージインストール時の効果検出ポイント
nextpdf/artisanChrome ファクトリークラスが存在する場合、Chrome CDP HTML レンダラーの構成がドキュメントバインディングに適用されるNextPdfServiceProvider::register() が Chrome ブラウザーファクトリークラスを確認する
nextpdf/premium署名(PAdES B-B)、PDF/A アーカイブ、および e-invoice コントラクトの具象が、既存のコンテナーキー経由で解決される最初のコンテナー解決時に遅延的に解決される

拡張機能も同じ方法でインストールします。

Terminal window
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/ — 検出の内部処理とバインディングのライフタイム