Установка моста NextPDF Cloudflare
Установите пакет через Composer. Затем добавьте HTTP-клиент, реализующий PSR-18, и фабрики, реализующие PSR-17. Мост объявляет интерфейсы; конкретный HTTP-клиент в него не входит.
Требования
Заголовок раздела «Требования»Мост берёт эти зависимости из раздела require файла composer.json:
| Зависимость | Ограничение |
|---|---|
| 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 |
Пакет автоматически загружает NextPDF\Cloudflare\ из src/Cloudflare/ (PSR-4). Он проходит статический анализ на уровне PHPStan Level 10 и поставляется без базового набора исключений анализатора.
Установка пакета
Заголовок раздела «Установка пакета»composer require nextpdf/cloudflareДобавление HTTP-клиента и фабрик
Заголовок раздела «Добавление HTTP-клиента и фабрик»Конструктору моста требуются PSR-18 ClientInterface, PSR-17 RequestFactoryInterface и PSR-17 StreamFactoryInterface. При фиксированном транспорте также используется PSR-17 ResponseFactoryInterface, если вы его предоставите. Вы можете использовать любую совместимую реализацию. В README как один из примеров указан Guzzle:
composer require guzzlehttp/guzzleGuzzle 7 предоставляет клиент PSR-18 и все четыре фабричных интерфейса PSR-17. Symfony HttpClient, Buzz и другие совместимые стеки тоже подходят. Пакет по своей конструкции не привязан к конкретному поставщику. Тест tests/Unit/Architecture/PsrConformanceTest.php проверяет, что пакет зависит только от контрактов PSR, а не от какого-либо конкретного клиента.
Дополнительно: локальный резервный вариант на Chrome
Заголовок раздела «Дополнительно: локальный резервный вариант на Chrome»Когда Worker недоступен и включён резервный вариант, мост может делегировать отрисовку локальному рендереру. Этот рендерер вы предоставляете через NextPDF\Cloudflare\Contract\LocalRendererFactoryInterface. Блок suggest в composer.json указывает реализацию от поставщика:
composer require nextpdf/artisanОдной установки nextpdf/artisan недостаточно. Вы также должны передать LocalRendererFactoryInterface в конструктор рендерера. Если Artisan установлен, но фабрика не подключена, мост обнаруживает это состояние и вызывает CloudflareNotAvailableException. Сообщение исключения прямо указывает на эту причину. Описание подключения см. в /integrations/cloudflare/production-usage/.
Проверка установки
Заголовок раздела «Проверка установки»<?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() возвращает true, когда оба значения — workerUrl и apiToken — не пусты. Метод не обращается к сети. Он только проверяет полноту конфигурации, поэтому вы можете использовать его как дымовой тест на этапе развёртывания.
См. также
Заголовок раздела «См. также»- /integrations/cloudflare/configuration/ — все параметры конфигурации.
- /integrations/cloudflare/quickstart/ — выполните первую отрисовку.
- /integrations/cloudflare/boot-and-discovery/ — подключите мост в контейнер фреймворка.