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 | 런타임에 필요 | 프로세스당 한 번 검증됩니다. |
ext-zlib | 런타임에 필요 | 프로세스당 한 번 검증됩니다. |
다음 선택적 패키지는 suggest 아래에 선언되어 있습니다:
| 패키지 | 추가 기능 |
|---|---|
nextpdf/artisan | Chrome CDP HTML 렌더러(문서 빌드 시 자동으로 감지됨). |
nextpdf/premium | NextPDF Pro 및 Enterprise: 서명, PDF/A, Factur-X. |
codeigniter4/queue | GeneratePdfJob를 통한 비동기 PDF 생성. |
패키지를 설치합니다.
composer require nextpdf/codeigniterComposer는 위 제약 조건에 따라 nextpdf/core 및 codeigniter4/framework를 해결합니다. 서비스 제공자, 번들 또는 부트스트랩 파일을 편집할 필요는 없습니다.
검색 작동 방식
섹션 제목: “검색 작동 방식”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)은 헬퍼 함수 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를 직접 요구해야 합니다.
보안 참고 사항
섹션 제목: “보안 참고 사항”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/ — 검색 시퀀스 세부 정보.