Instalar NextPDF Artisan
De un vistazo
Sección titulada «De un vistazo»Instalar nextpdf/artisan con Composer. Composer instalará también la dependencia de runtime chrome-php/chrome. Después, asegurarse de que el proceso PHP pueda acceder a un binario de Chrome o Chromium.
Instalación
Sección titulada «Instalación»composer require nextpdf/artisanEl paquete declara las siguientes restricciones en composer.json:
| Requisito | Restricción | Notas |
|---|---|---|
php | >=8.4 <9.0 | Solo PHP 8.4 |
nextpdf/core | ^3.0 || ^5.2 | Motor open source de NextPDF |
chrome-php/chrome | ^1.15 | Biblioteca cliente CDP; se instala como dependencia transitiva |
psr/log | ^3.0 | Punto opcional de inyección de logger |
Composer resuelve chrome-php/chrome automáticamente. El binario de Chrome es una dependencia del sistema y Composer no lo instala nunca.
Aprovisionar el binario de Chrome
Sección titulada «Aprovisionar el binario de Chrome»El puente necesita un ejecutable de Chrome o Chromium. De forma predeterminada, chrome-php/chrome detecta automáticamente un binario en las rutas habituales. Para fijar una ruta explícita, pasarla mediante la configuración; consultar /integrations/artisan/configuration/ y la página dedicada /integrations/artisan/chrome-renderer-setup/.
# Debian / Ubuntuapt-get install -y chromium
# RHEL / Fedoradnf install -y chromium
# macOS (Homebrew)brew install --cask chromiumVerificar que el binario se ejecute en modo headless antes de conectarlo a la aplicación:
chromium --headless --dump-dom about:blankUna ejecución correcta imprime un documento DOM vacío y termina con código 0. Un código de salida distinto de cero significa que falta el binario o alguna de sus bibliotecas compartidas. Corregirlo antes de continuar, porque el puente expone el mismo fallo como un ChromeRenderException en el momento del renderizado.
Verificar que el paquete está conectado
Sección titulada «Verificar que el paquete está conectado»<?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: defaultEsto crea el renderer y lee de nuevo la política de seguridad de HTML predeterminada sin lanzar Chrome. Con ello se confirma que el autocargado y los enlaces de contrato de nextpdf/core se resuelven. (Comportamiento verificado por tests/Unit/Artisan/ChromeHtmlRendererTest.php::usesDefaultHtmlSecurityPolicyWhenNoneInjected.)
Instalaciones en contenedor
Sección titulada «Instalaciones en contenedor»En Docker, el sandbox de Chrome normalmente no puede iniciarse como PID 1 / root sin capacidades adicionales del kernel. El paquete expone el interruptor noSandbox para ese caso. Desactivar el sandbox de Chrome conlleva un coste de seguridad real. Las páginas /integrations/artisan/security-and-operations/ y /integrations/artisan/chrome-renderer-setup/ documentan ese coste y delimitan sus límites de forma explícita. No activar el interruptor sin leer esa sección.
Casos límite y consejos
Sección titulada «Casos límite y consejos»chrome-php/chromepresente pero sin binario. Composer termina correctamente; el primer renderizado lanzaChromeRenderExceptiony envuelve el fallo de lanzamiento. La comprobación de la biblioteca es independiente de la del binario.chrome-php/chromeausente. Si la biblioteca se elimina del autocargador,BrowserPool::getBrowser()lanzaChromeNotAvailableExceptioncon el comando exacto para remediarlo. (Verificado portests/Unit/Artisan/BrowserPoolTest.php::getBrowserThrowsWhenChromePhpPackageIsUnavailable.)- Restricción de versión.
nextpdf/core: ^3.0 || ^5.2: Artisan admite ambas líneas mayores del core. Fijar la versión del core que usa la aplicación.
Notas de seguridad
Sección titulada «Notas de seguridad»Instalar el puente introduce un proceso externo (Chrome) dentro del límite de confianza. Revisar /integrations/artisan/security-and-operations/ antes de exponer cualquier ruta de renderizado a HTML proporcionado por el usuario.
Véase también
Sección titulada «Véase también»- /integrations/artisan/overview/
- /integrations/artisan/configuration/
- /integrations/artisan/quickstart/
- /integrations/artisan/chrome-renderer-setup/
- /integrations/artisan/security-and-operations/