- Como instalar o nfephp-org/sped-da no Laravel?
- Use Composer para instalar via `composer require nfephp-org/sped-da`. O pacote não exige configuração adicional no Laravel, mas você precisará de uma biblioteca como Dompdf ou TCPDF para renderizar os PDFs a partir do XML gerado. Certifique-se de que o PHP 7.4+ está configurado.
- Este pacote é compatível com Laravel 10 e PHP 8.2?
- O pacote foi desenvolvido para PHP 7+, mas não há garantias explícitas de compatibilidade com Laravel 10 ou PHP 8.2. Teste em seu ambiente e, se necessário, faça um fork para atualizar dependências. A última atualização foi em 2021, então verifique se as classes ainda funcionam com versões recentes.
- Posso gerar DANFE personalizado com logos ou layouts específicos?
- O pacote é genérico e segue estritamente as normas SEFAZ, sem suporte a personalizações como logos ou layouts customizados. Se precisar de recursos adicionais, você deve criar um gerador próprio ou estender as classes, mas isso pode violar a conformidade fiscal. Use o XML original para informações administrativas.
- Como integrar a geração de SPED-DA com Laravel Queues?
- Crie uma job Laravel (ex: `GenerateSpedDaJob`) que utilize o pacote para gerar o PDF a partir do XML. Dispare a job via `GenerateSpedDaJob::dispatch($xmlData)`. Para processamento assíncrono, configure o queue worker com `php artisan queue:work`. Ideal para evitar timeouts em requisições HTTP.
- O pacote suporta validação automática do XML antes de gerar o PDF?
- Não há validação automática integrada. Você deve validar o XML manualmente contra os esquemas SEFAZ antes de passar para o pacote. Use bibliotecas como `simplexml_load_string()` com `@errors` ou libs como `spatie/array-to-xml` para pré-processamento. O pacote assume que o XML está correto.
- Quais são os limites de tamanho de arquivo para DANFE/DACTE/DAMDFE?
- Os documentos auxiliares do SPED não têm limites rígidos, mas arquivos muito grandes (ex: >50MB) podem causar problemas de memória no Laravel. Use `ini_set('memory_limit', '512M')` temporariamente ou processe o XML em chunks. Para arquivos maiores, considere streaming com `fopen()` ou bibliotecas como `league/flysystem`.
- Existem alternativas ao nfephp-org/sped-da para SPED no Laravel?
- Sim, avalie o `spedfiscal/sped` (mais completo para SPED Fiscal) ou `nfephp/nfe` (para NF-e). Se precisar de um pacote mais ativo, considere forks ou pacotes como `laravel-sped` (se disponível). Este pacote é focado apenas em documentos auxiliares (DANFE/DACTE/DAMDFE), enquanto outros cobrem mais do ecossistema SPED.
- Como testar a geração de SPED-DA em ambiente de desenvolvimento?
- Use XMLs de exemplo válidos (disponíveis no site da SEFAZ) e compare os PDFs gerados com amostras oficiais. Teste edge cases como campos obrigatórios vazios ou dados inválidos. Para automação, crie testes unitários com `Pest` ou `PHPUnit`, mockando a geração de PDFs e validando a estrutura XML de saída.
- O pacote é seguro para uso em produção com dados fiscais sensíveis?
- O pacote segue as normas SEFAZ, mas não é ativamente mantido. Avalie riscos como vulnerabilidades não corrigidas ou desatualização com novas versões do SPED. Para maior segurança, faça uma auditoria de código ou use em conjunto com um WAF (Web Application Firewall) para proteger APIs que exponham a geração de SPED-DA.
- Posso contribuir para atualizar o pacote ou adicionar novos recursos?
- O repositório está em refatoração e será dividido em 4 pacotes menores (nfe, cte, mdfe e common). Contribuições são bem-vindas, mas novas funcionalidades devem ser discutidas no GitHub para alinhar com o escopo genérico do projeto. Evite adicionar recursos específicos de sistemas, conforme orientado no README.