Pular para o conteúdo

Instalação do pacote Laravel para NextPDF

Instale o nextpdf/laravel com o Composer. A descoberta automática do Laravel registra o service provider para você. Publique o arquivo de configuração quando precisar editá-lo. O pacote também detecta automaticamente as extensões opcionais do NextPDF.

Terminal window
composer require nextpdf/laravel

O pacote declara as seguintes restrições no próprio composer.json:

RequisitoRestrição
PHP>=8.4 <9.0
laravel/framework^12.0
nextpdf/core^3.0 || ^5.2
psr/http-client^1.0

O pacote usa autoload com um único mapeamento PHP Standard Recommendation 4 (PSR-4). O prefixo NextPDF\Laravel\ é resolvido para src/Laravel/. Isso segue a regra da PSR-4 para prefixo e diretório base (PSR-4 §3).

Depois de executar composer require, a descoberta automática de pacotes do Laravel lê o bloco extra.laravel no composer.json deste pacote. Em seguida, registra o provider e o alias da facade para você, de modo que você não precisa editar config/app.php manualmente. O bloco fica assim:

resource: composer.json (extra.laravel)
{
"extra": {
"laravel": {
"providers": [
"NextPDF\\Laravel\\NextPdfServiceProvider"
],
"aliases": {
"Pdf": "NextPDF\\Laravel\\Facades\\Pdf"
}
}
}
}

A documentação de pacotes do Laravel descreve esse comportamento. O array extra.laravel.providers registra service providers automaticamente, e o array extra.laravel.aliases registra aliases de facade automaticamente (guia de desenvolvimento de pacotes do Laravel 12, https://laravel.com/docs/12.x/packages, acessado em 2026-05-18).

Use a tag nextpdf-config para publicar o arquivo de configuração. Esse nome de tag é definido em NextPdfServiceProvider::boot().

Terminal window
php artisan vendor:publish --tag=nextpdf-config

Isso grava o config/nextpdf.php na aplicação. O provider também mescla a configuração padrão do pacote sob a chave nextpdf durante o register(), de modo que o pacote funciona antes da publicação. Ao publicar, o arquivo fica editável na aplicação.

Confirme que o Laravel descobriu o provider:

Terminal window
php artisan package:discover --ansi

Fixe a restrição para implantações reproduzíveis. Desabilite explicitamente a descoberta somente se você registrar o provider por conta própria:

resource: opt-out pattern (Laravel 12 packages guide)
{
"extra": {
"laravel": {
"dont-discover": [
"nextpdf/laravel"
]
}
}
}

Quando a descoberta estiver desabilitada, registre o provider por conta própria em bootstrap/providers.php:

resource: bootstrap/providers.php (manual registration)
<?php
declare(strict_types=1);
return [
App\Providers\AppServiceProvider::class,
NextPDF\Laravel\NextPdfServiceProvider::class,
];

O pacote lista pacotes complementares opcionais em suggest, no próprio composer.json. Ele detecta em tempo de execução os complementares instalados:

PacoteEfeito quando instaladoPonto de detecção
nextpdf/artisanAplica a configuração do renderizador Chrome DevTools Protocol (CDP) Hypertext Markup Language (HTML) ao binding do documento quando uma classe factory do Chrome está presenteNextPdfServiceProvider::register() verifica se a classe browser-factory do Chrome está presente
nextpdf/premiumAs chaves de container existentes resolvem as concretizações dos contratos de assinatura PDF Advanced Electronic Signatures (PAdES B-B), arquivamento PDF/A e nota fiscal eletrônicaresolvidas de forma lazy quando o container as resolve pela primeira vez

Instale uma extensão da mesma maneira:

Terminal window
composer require nextpdf/artisan

Nenhuma configuração adicional é necessária. O provider detecta a extensão no próximo ciclo de registro.

  • A publicação é idempotente. Ela não sobrescreve um config/nextpdf.php existente. Adicione --force quando quiser sobrescrevê-lo intencionalmente.
  • Como o provider é deferred, um php artisan package:discover bem-sucedido é suficiente para confirmar o pacote. Os próprios bindings só aparecem na primeira resolução.
  • O pacote oferece suporte ao nextpdf/core nas duas linhas major ^3.0 e ^5.2. Faça a restrição do core corresponder à linha fixada pela aplicação. A superfície do adaptador Laravel é a mesma nas duas.
  • O badge do README e o composer.json concordam quanto à licença Apache-2.0. O pacote foi relicenciado a partir da LGPL-3.0-or-later. As versões marcadas antes da migração permanecem sob a licença anterior (consulte CHANGELOG.md).

A resolução do nextpdf/core é o principal fator no custo do composer require. O registro do provider não adiciona custo de boot mensurável, porque todos os bindings são closures deferred. Consulte /integrations/laravel/boot-and-discovery/ para ver o custo de construção na primeira resolução.

Instale a partir do pacote Packagist canônico nextpdf/laravel. O pacote inclui cabeçalhos REUSE Software Package Data Exchange (SPDX) e um arquivo NOTICE Apache-2.0. Fixe a restrição no composer.json e faça commit do composer.lock para que os workers implantados resolvam a árvore de dependências já verificada.

DeclaraçãoFonteCláusulareference_id
O prefixo PSR-4 mapeia para o diretório basePSR-4 Autoloader§3

Os nomes das chaves de descoberta automática do Laravel foram verificados em relação à documentação oficial de desenvolvimento de pacotes do Laravel 12 (https://laravel.com/docs/12.x/packages, acessada em 2026-05-18).

O nextpdf/premium adiciona as concretizações de assinatura, PDF/A e nota fiscal eletrônica como recurso Enterprise opcional. Você pode adotá-lo sem alterar o pacote Core documentado aqui. Consulte https://nextpdf.dev/get-license/?intent=laravel-signing.

  • /integrations/laravel/overview/ — arquitetura do pacote e tabela de bindings
  • /integrations/laravel/quickstart/ — primeiro controller executável
  • /integrations/laravel/configuration/ — cada chave de configuração explicada
  • /integrations/laravel/boot-and-discovery/ — detalhes internos da descoberta e ciclos de vida dos bindings