Instalacja NextPDF Artisan
W skrócie
Dział zatytułowany „W skrócie”Zainstaluj nextpdf/artisan za pomocą Composera. Composer instaluje również zależność wykonawczą chrome-php/chrome. Następnie zapewnij procesowi PHP dostęp do pliku binarnego Chrome lub Chromium.
Instalacja
Dział zatytułowany „Instalacja”composer require nextpdf/artisanPakiet deklaruje następujące ograniczenia w pliku composer.json:
| Wymaganie | Ograniczenie | Uwagi |
|---|---|---|
php | >=8.4 <9.0 | tylko PHP 8.4 |
nextpdf/core | ^3.0 || ^5.2 | otwartoźródłowy silnik NextPDF |
chrome-php/chrome | ^1.15 | biblioteka klienta protokołu Chrome DevTools Protocol (CDP); pobierana przez zależności przechodnie |
psr/log | ^3.0 | opcjonalny punkt wstrzykiwania mechanizmu rejestrowania |
Composer automatycznie rozwiązuje zależność chrome-php/chrome. Composer nigdy nie instaluje pliku binarnego Chrome; jest to zależność systemowa.
Przygotowanie pliku binarnego Chrome
Dział zatytułowany „Przygotowanie pliku binarnego Chrome”Mostek wymaga wykonywalnego pliku binarnego Chrome lub Chromium. Domyślnie chrome-php/chrome szuka pliku binarnego w typowych ścieżkach. Aby ustawić jawną ścieżkę, podaj ją w konfiguracji. Zobacz /integrations/artisan/configuration/ oraz osobną stronę /integrations/artisan/chrome-renderer-setup/.
# Debian / Ubuntuapt-get install -y chromium
# RHEL / Fedoradnf install -y chromium
# macOS (Homebrew)brew install --cask chromiumZanim skonfigurujesz plik binarny w aplikacji, sprawdź, czy działa w trybie headless:
chromium --headless --dump-dom about:blankPo pomyślnym uruchomieniu polecenie wypisuje pusty dokument Document Object Model (DOM) i kończy działanie z kodem 0. Niezerowy kod wyjścia oznacza, że brakuje pliku binarnego lub jego bibliotek współdzielonych. Rozwiąż ten problem przed kontynuowaniem, ponieważ mostek zgłasza tę samą awarię jako ChromeRenderException w czasie renderowania.
Weryfikacja podłączenia pakietu
Dział zatytułowany „Weryfikacja podłączenia pakietu”<?php
declare(strict_types=1);
use NextPDF\Artisan\ChromeRendererConfig;use NextPDF\Artisan\ChromeHtmlRenderer;
require __DIR__ . '/vendor/autoload.php';
$renderer = new ChromeHtmlRenderer(new ChromeRendererConfig());
echo $renderer->getHtmlSecurityPolicy()->getName(), PHP_EOL;// Prints: defaultTen przykład tworzy instancję mechanizmu renderującego i odczytuje domyślną politykę bezpieczeństwa Hypertext Markup Language (HTML) bez uruchamiania Chrome. Potwierdza to, że automatyczne ładowanie oraz powiązania kontraktów nextpdf/core są poprawnie rozwiązywane. (To zachowanie potwierdza test tests/Unit/Artisan/ChromeHtmlRendererTest.php::usesDefaultHtmlSecurityPolicyWhenNoneInjected.)
Instalacje w kontenerach
Dział zatytułowany „Instalacje w kontenerach”W środowisku Docker piaskownica Chrome zwykle nie może wystartować bez dodatkowych uprawnień jądra, jeśli Chrome działa jako proces o identyfikatorze (PID) 1 / root. W takim przypadku pakiet udostępnia przełącznik noSandbox. Wyłączenie piaskownicy Chrome wiąże się z realnym kosztem bezpieczeństwa. Strony /integrations/artisan/security-and-operations/ oraz /integrations/artisan/chrome-renderer-setup/ dokumentują ten koszt i jawnie określają jego granice. Nie ustawiaj tego przełącznika bez wcześniejszego przeczytania tej sekcji.
Przypadki brzegowe i pułapki
Dział zatytułowany „Przypadki brzegowe i pułapki”chrome-php/chromeobecny, ale brak pliku binarnego. Composer kończy się powodzeniem; pierwsze renderowanie zgłaszaChromeRenderExceptioni opakowuje błąd uruchomienia. Weryfikacja biblioteki jest niezależna od weryfikacji pliku binarnego.chrome-php/chromenieobecny. Jeśli biblioteka zostanie usunięta z autoloadera,BrowserPool::getBrowser()zgłaszaChromeNotAvailableExceptionwraz z konkretnym poleceniem naprawczym. (Potwierdza to testtests/Unit/Artisan/BrowserPoolTest.php::getBrowserThrowsWhenChromePhpPackageIsUnavailable.)- Ograniczenie wersji.
nextpdf/core: ^3.0 || ^5.2— Artisan obsługuje obie główne linie wersji core. Określ wersję core docelową dla aplikacji.
Uwagi dotyczące bezpieczeństwa
Dział zatytułowany „Uwagi dotyczące bezpieczeństwa”Instalacja mostka wprowadza w obręb granicy zaufania zewnętrzny proces (Chrome). Zapoznaj się z /integrations/artisan/security-and-operations/, zanim udostępnisz jakąkolwiek ścieżkę renderowania dla kodu HTML pochodzącego od użytkownika.
Zobacz także
Dział zatytułowany „Zobacz także”- /integrations/artisan/overview/
- /integrations/artisan/configuration/
- /integrations/artisan/quickstart/
- /integrations/artisan/chrome-renderer-setup/
- /integrations/artisan/security-and-operations/