Bỏ qua để đến nội dung

Cài đặt NextPDF cho CodeIgniter 4

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.

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ộcRàng buộcGhi chú
PHP>=8.4 <9.0Hướng đến PHP 8.4.
nextpdf/core^3.0 || ^5.2Engine NextPDF.
codeigniter4/framework^4.6Đã kiểm chứng với CodeIgniter 4.7.0.
ext-mbstringbắt buộc khi chạyĐược kiểm tra một lần cho mỗi tiến trình.
ext-zlibbắ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óiBổ sung
nextpdf/artisanBộ 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/premiumCác tính năng NextPDF Pro và Enterprise: ký, PDF/A, Factur-X.
codeigniter4/queueTạo PDF không đồng bộ bằng GeneratePdfJob.

Cài đặt gói bằng Composer:

Terminal window
composer require nextpdf/codeigniter

Composer phân giải nextpdf/corecodeigniter4/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.

CodeIgniter 4 quét các gói Composer để tìm thành phần framework khi Config\Modules::$discoverInComposertrue, 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()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 nhận Composer đã phân giải gói:

Terminal window
composer show nextpdf/codeigniter

Xá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/.

  • Nếu ứng dụng chủ đặt Config\Modules::$discoverInComposer thành false, hãy thêm nextpdf/codeigniter và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-autoload sau khi nâng cấp.
  • Gói này chỉ khai báo codeigniter4/queue như một phần phụ thuộc dành cho phát triển. Ứng dụng production điều phối GeneratePdfJob phải khai báo trực tiếp codeigniter4/queue.

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/.

  • Tính năng phát hiện qua Composer phụ thuộc vào việc tự động nạp theo PSR-4.
  • /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.