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

Cài đặt cầu nối NextPDF Cloudflare

Cài đặt gói bằng Composer. Sau đó thêm một client Hypertext Transfer Protocol (HTTP) hiện thực PHP Standard Recommendation 18 (PSR-18) và các factory hiện thực PSR-17. Cầu nối chỉ khai báo các interface; nó không đóng gói sẵn client HTTP cụ thể nào.

Cầu nối đọc các phụ thuộc sau từ phần require của composer.json:

Phụ thuộcRàng buộc
PHP>=8.4 <9.0
nextpdf/core^3.0
psr/http-client (PSR-18)^1.0
psr/http-factory (PSR-17)^1.1
psr/log (PSR-3)^3.0

Gói tự động tải NextPDF\Cloudflare\ từ src/Cloudflare/ (PSR-4). Gói vượt qua phân tích tĩnh ở PHPStan Level 10 và không kèm baseline cho công cụ phân tích.

Terminal window
composer require nextpdf/cloudflare

Hàm khởi tạo của cầu nối yêu cầu một ClientInterface theo PSR-18, một RequestFactoryInterface theo PSR-17 và một StreamFactoryInterface theo PSR-17. Đường truyền tải cố định cũng dùng một ResponseFactoryInterface theo PSR-17 nếu bạn cung cấp. Bạn có thể dùng bất kỳ bản hiện thực tuân thủ nào. README nêu Guzzle làm ví dụ:

Terminal window
composer require guzzlehttp/guzzle

Guzzle 7 cung cấp client PSR-18 và cả bốn interface factory PSR-17. Symfony HttpClient, Buzz và các stack tuân thủ khác cũng dùng được. Gói được thiết kế trung lập với nhà cung cấp. Bài kiểm thử tests/Unit/Architecture/PsrConformanceTest.php xác nhận rằng gói chỉ phụ thuộc vào các contract PSR, không phụ thuộc vào bất kỳ client cụ thể nào.

Tùy chọn: phương án dự phòng Chrome cục bộ

Phần tiêu đề “Tùy chọn: phương án dự phòng Chrome cục bộ”

Khi không thể kết nối tới Worker và phương án dự phòng được bật, cầu nối có thể ủy thác việc kết xuất cho một renderer cục bộ. Bạn cung cấp renderer đó thông qua NextPDF\Cloudflare\Contract\LocalRendererFactoryInterface. Khối suggest trong composer.json nêu tên bản hiện thực chính thức:

Terminal window
composer require nextpdf/artisan

Chỉ cài đặt nextpdf/artisan là chưa đủ. Bạn cũng phải truyền một LocalRendererFactoryInterface vào hàm khởi tạo của renderer. Nếu Artisan đã được cài đặt nhưng chưa có factory nào được nối dây, cầu nối sẽ phát hiện trạng thái đó và ném ra một CloudflareNotAvailableException. Thông báo của exception nêu rõ nguyên nhân này. Xem /integrations/cloudflare/production-usage/ để biết cách nối dây.

<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use NextPDF\Cloudflare\CloudflareRendererConfig;
$config = new CloudflareRendererConfig(
workerUrl: 'https://pdf-renderer.example.workers.dev/render',
apiToken: 'placeholder',
);
echo $config->isValid() ? "ready\n" : "incomplete\n";

isValid() trả về true khi cả workerUrlapiToken đều không rỗng. Nó không kết nối tới mạng. Nó chỉ kiểm tra cấu hình đã đủ thông tin hay chưa, nên bạn có thể dùng nó như một bài smoke test tại thời điểm triển khai.

  • /integrations/cloudflare/configuration/ — tất cả tùy chọn cấu hình.
  • /integrations/cloudflare/quickstart/ — chạy lần kết xuất đầu tiên của bạn.
  • /integrations/cloudflare/boot-and-discovery/ — nối dây cầu nối vào container của framework.