Cài đặt NextPDF cho CodeIgniter 4
Tổng quan nhanh
Phần tiêu đề “Tổng quan nhanh”Cài đặt gói bằng Composer. CodeIgniter 4 tự động tìm thấy lớp Services và các hàm helper, nên bạn không cần đăng ký thủ công.
Yêu cầu
Phần tiêu đề “Yêu cầu”Tệp composer.json của gói là nguồn chính thức cho các ràng buộc này. Bảng dưới đây tóm tắt lại để bạn tra cứu nhanh.
| Phần phụ thuộc | Ràng buộc | Ghi chú |
|---|---|---|
| PHP | >=8.4 <9.0 | Hướng đến PHP 8.4. |
nextpdf/core | ^3.0 || ^5.2 | Engine NextPDF. |
codeigniter4/framework | ^4.6 | Đã kiểm chứng với CodeIgniter 4.7.0. |
ext-mbstring | bắt buộc khi chạy | Được kiểm tra một lần cho mỗi tiến trình. |
ext-zlib | bắt buộc khi chạy | Được kiểm tra một lần cho mỗi tiến trình. |
Các gói tùy chọn được khai báo trong suggest sẽ bổ sung các tính năng sau:
| Gói | Bổ sung |
|---|---|
nextpdf/artisan | Bộ kết xuất HTML qua Chrome DevTools Protocol (CDP), được tự động phát hiện khi dựng tài liệu. |
nextpdf/premium | Các tính năng NextPDF Pro và Enterprise: ký, PDF/A, Factur-X. |
codeigniter4/queue | Tạo PDF không đồng bộ bằng GeneratePdfJob. |
Cài đặt
Phần tiêu đề “Cài đặt”Cài đặt gói bằng Composer:
composer require nextpdf/codeigniterComposer phân giải nextpdf/core và codeigniter4/framework theo các ràng buộc ở trên. Bạn không cần chỉnh sửa service provider, bundle hoặc tệp bootstrap.
Cách cơ chế phát hiện hoạt động
Phần tiêu đề “Cách cơ chế phát hiện hoạt động”CodeIgniter 4 quét các gói Composer để tìm thành phần framework khi Config\Modules::$discoverInComposer là true, giá trị mặc định của framework. Gói này bao gồm lớp NextPDF\CodeIgniter\Config\Services. Lớp đó nằm trong namespace PHP Standard Recommendation 4 (PSR-4) NextPDF\CodeIgniter\, ánh xạ tới src/CodeIgniter/. Bộ tự động nạp PSR-4 của Composer chuyển đổi tên lớp đầy đủ thành đường dẫn tệp. Bắt buộc phải có namespace cấp cao nhất (PSR-4 §x1.x2.p5, từ tình thái MUST). Tiền tố namespace ánh xạ tới thư mục gốc, vì vậy lớp được phân giải tới đúng tệp của nó (PSR-4 §x1.x3).
Mục autoload files trong Composer của gói (src/CodeIgniter/Helpers/pdf_helper.php) đăng ký hai hàm helper pdf() và pdf_document(). Registrar của gói cũng công bố helper pdf cho bộ nạp helper của CodeIgniter. Xem /integrations/codeigniter/boot-and-discovery/ để biết trình tự đầy đủ.
Xác minh quá trình cài đặt
Phần tiêu đề “Xác minh quá trình cài đặt”Xác nhận Composer đã phân giải gói:
composer show nextpdf/codeigniterXác nhận CodeIgniter đã phát hiện lớp Services. Trong bất kỳ controller nào, hoặc trong một route php spark ngắn, hãy gọi service và xác nhận kiểu của nó:
<?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);Nếu Services::pdfDocument() trả về một Document, cơ chế phát hiện đang hoạt động. Nếu nó trả về null, cơ chế phát hiện chưa chạy. Xem /integrations/codeigniter/troubleshooting/.
Trường hợp đặc biệt & lưu ý
Phần tiêu đề “Trường hợp đặc biệt & lưu ý”- Nếu ứng dụng chủ đặt
Config\Modules::$discoverInComposerthànhfalse, hãy thêmnextpdf/codeignitervào danh sách$composerPackages['only']. Nếu không, CodeIgniter sẽ bỏ qua gói này. - Một bộ autoloader Composer cũ có thể che khuất lớp Services. Hãy chạy
composer dump-autoloadsau khi nâng cấp. - Gói này chỉ khai báo
codeigniter4/queuenhư một phần phụ thuộc dành cho phát triển. Ứng dụng production điều phốiGeneratePdfJobphải khai báo trực tiếpcodeigniter4/queue.
Lưu ý về bảo mật
Phần tiêu đề “Lưu ý về bảo mật”Cài đặt từ Packagist qua HTTPS. Ghim các phiên bản đã phân giải trong composer.lock. Gói này không thêm script nào trong quá trình cài đặt. Xem /integrations/codeigniter/security-and-operations/.
Tuân thủ
Phần tiêu đề “Tuân thủ”- Tính năng phát hiện qua Composer phụ thuộc vào việc tự động nạp theo PSR-4.
Xem thêm
Phần tiêu đề “Xem thêm”- /integrations/codeigniter/overview/ — khả năng của gói.
- /integrations/codeigniter/quickstart/ — tạo PDF đầu tiên trong một controller.
- /integrations/codeigniter/configuration/ — các khóa cấu hình và giá trị ghi đè.
- /integrations/codeigniter/boot-and-discovery/ — trình tự phát hiện chi tiết.