O pacote CodeIgniter fornece fábricas de serviço, funções auxiliares e um pequeno wrapper de biblioteca Pdf para um único documento Portable Document Format (PDF). Use o wrapper em controllers. O processamento em fila usa callables de construtores estáticos porque os payloads de fila do CodeIgniter precisam ser dados serializados.
Use este guia para projetar fluxos de controller, serviços, construtores de fila e testes em torno de nextpdf/codeigniter.
Construtores estáticos seguros para fila aceitos por GeneratePdfJob.
app/Libraries/*
Wrappers de aplicação opcionais em torno de fluxos de trabalho de documentos recorrentes.
app/Services/*
Política de recuperação e armazenamento de dados de domínio.
app/Config/NextPdf.php
Sobrescritas da aplicação para a configuração do pacote.
tests/app/PdfBuilders/*
Testes de construtor e de payload de fila.
Use os helpers do pacote para fluxos curtos. Use chamadas de serviço explícitas quando a construção do documento pertencer a uma classe que você possa testar diretamente.
Os construtores de fila devem ser estáticos, determinísticos e localizados em App\PdfBuilders. Mantenha o array de contexto simples o suficiente para ser serializado e auditado.
O job restringe a saída ao diretório de PDF configurado da aplicação. Se a aplicação precisar de armazenamento específico por tenant, coloque essa política em um único serviço e teste-a antes de despachar o job.
Os testes de serviço verificam se cada resolução de Services::pdf() retorna um documento independente.
Os testes de helper verificam se pdf() e pdf_document() retornam objetos novos.
Os testes de resposta verificam os cabeçalhos e a normalização do nome do arquivo.
Os testes de fila cobrem strings de construtor inválidas e caminhos de saída inseguros.
Os testes de construtor usam dados de contexto representativos.
Os testes de configuração cobrem o caminho de fonte, o caminho de cache, a assinatura desabilitada e os estados de Time-Stamp Authority (TSA) desabilitada.