CodeIgniter 4 への NextPDF のインストール
Composer でパッケージをインストールします。CodeIgniter 4 は Services クラスとヘルパー関数を自動的に検出します。手動登録は不要です。
これらの制約はパッケージの composer.json で宣言されており、そのファイルが信頼できる情報源です。以下の表は同じ制約を再掲したものです。
| 依存関係 | 制約 | 備考 |
|---|---|---|
| PHP | >=8.4 <9.0 | PHP 8.4 対象。 |
nextpdf/core | ^3.0 || ^5.2 | NextPDF エンジン。 |
codeigniter4/framework | ^4.6 | CodeIgniter 4.7.0 で検証済み。 |
ext-mbstring | 実行時に必須 | プロセスごとに 1 回検証。 |
ext-zlib | 実行時に必須 | プロセスごとに 1 回検証。 |
オプションのパッケージは suggest で宣言されています。
| パッケージ | 追加される機能 |
|---|---|
nextpdf/artisan | Chrome CDP HTML レンダラー(ドキュメントのビルド時に自動検出)。 |
nextpdf/premium | NextPDF Pro および Enterprise:署名、PDF/A、Factur-X。 |
codeigniter4/queue | 非同期 PDF 生成を GeneratePdfJob 経由で実行。 |
インストール
「インストール」という見出しのセクションパッケージをインストールします。
composer require nextpdf/codeigniterComposer は上記の制約に従って nextpdf/core と codeigniter4/framework を resolve(解決)します。サービスプロバイダー、バンドル、ブートストラップファイルを編集する必要はありません。
検出の仕組み
「検出の仕組み」という見出しのセクションCodeIgniter 4 は、Config\Modules::$discoverInComposer が true(フレームワークのデフォルト)の場合、Composer パッケージ内のフレームワーク要素をスキャンします。このパッケージには NextPDF\CodeIgniter\Config\Services クラスが含まれています。このクラスは PSR-4 名前空間 NextPDF\CodeIgniter\ の下に配置されており、src/CodeIgniter/ にマッピングされます。Composer の PSR-4 オートローディングは、その完全修飾クラス名をファイルパスに変換します。トップレベルの名前空間は必須です(PSR-4 §x1.x2.p5、モーダル MUST)。名前空間プレフィックスはベースディレクトリにマッピングされるため、クラスは該当ファイルに解決されます(PSR-4 §x1.x3)。
パッケージの Composer files オートロードエントリ(src/CodeIgniter/Helpers/pdf_helper.php)は、2 つのヘルパー関数 pdf() と pdf_document() を登録します。パッケージの Registrar は、CodeIgniter のヘルパーローダーにも pdf ヘルパーを通知します。完全なシーケンスについては /integrations/codeigniter/boot-and-discovery/ を参照してください。
インストールの確認
「インストールの確認」という見出しのセクションComposer がパッケージを解決したことを確認します。
composer show nextpdf/codeigniterCodeIgniter が Services クラスを検出したことを確認します。任意のコントローラーまたは短い php spark ルートで、サービスを呼び出して型をアサートします。
<?php
declare(strict_types=1);
use NextPDF\CodeIgniter\Config\Services;use NextPDF\Core\Document;
$document = Services::pdfDocument(false);
// $document is a fresh NextPDF\Core\Document instance.\assert($document instanceof Document);Services::pdfDocument() が Document を返した場合、検出は機能しています。呼び出しが null を返した場合、検出は実行されていません。/integrations/codeigniter/troubleshooting/. を参照してください。
エッジケースと注意点
「エッジケースと注意点」という見出しのセクション- ホストアプリケーションが
Config\Modules::$discoverInComposerをfalseに設定している場合は、nextpdf/codeigniterを$composerPackages['only']のリストに追加してください。そうでない場合、検出はこのパッケージをスキップします。 - 古い Composer オートローダーでは Services クラスが隠れてしまうことがあります。アップグレード後に
composer dump-autoloadを実行してください。 - このパッケージは
codeigniter4/queueを開発依存関係としてのみ宣言します。GeneratePdfJobをディスパッチする本番アプリケーションは、独自にcodeigniter4/queueを require する必要があります。
セキュリティに関する注意事項
「セキュリティに関する注意事項」という見出しのセクションHTTPS 経由で Packagist からインストールします。解決されたバージョンを composer.lock に固定します。このパッケージはインストール時のスクリプトを追加しません。/integrations/codeigniter/security-and-operations/. を参照してください。
- Composer の検出は PSR-4 オートローディングに依存します。
- /integrations/codeigniter/overview/ — パッケージが提供する内容。
- /integrations/codeigniter/quickstart/ — コントローラーでの最初の PDF。
- /integrations/codeigniter/configuration/ — 設定キーとオーバーライド。
- /integrations/codeigniter/boot-and-discovery/ — 検出シーケンスの詳細。