sqginfo / sped-da
sped-da contêm as classes para criação dos documentos auxiliares referidos no projeto Sped.
Requires
- php: >= 7.0
- tecnickcom/tc-lib-barcode: ^1.15
Requires (Dev)
- phpunit/phpunit: ^5.7
- scrutinizer/ocular: ^1.3
- squizlabs/php_codesniffer: ^2.8
- wapmorgan/php-code-fixer: ^2.0
Suggests
- nfephp-org/posprint: ^0.1
This package is auto-updated.
Last update: 2024-11-05 19:02:18 UTC
README
Classes para geração dos documentos auxiliares usados pelos padrões Sped
NOTA: Este repositório contêm as classes "LEGADAS", para criação dos PDF's do projeto original NFePHP. Porém essas classes foram ajustadas e alguns recursos estarão ausentes ou pelo menos diferentes das suas contrapartes originais.
Serão retiradas das classes todas os recursos considerados como não "pertencentes" ao escopo das mesmas e não serão mais aceitas inclusões de métodos referentes a particuliaridades de qualuqer sistema. Estas classes devem ser e permanecer o tão genéricas quanto possivel.
UNDER DEVELOPMENT (NOT FULLY READY)
Orientação
Abaixo seguem as orientações gerais para desenvolvedores que desejarem contribuir para a construção e melhoria dos códigos.
Uma novo projeto oriundo do TCPDF está em desenvolvimento por Nicola Azuni. Este novo projeto é uma evolução do TCPDF e está sendo estruturado de acordo com as práticas mais atuais do PHP.
Dito isso, estas classes do sped-da, que são legadas do projeto NFePHP, deverão ser refatoradas, assim que esse novo projeto tc-lib-pdf estiver em uma versão usável.
Estrutura das classes
Para a geração dos documentos auxiliares devem feitas as seguintes considerações:
- Esta biblioteca deverá ser escrita para PHP7, não será testado ou aceito o seu uso em ambientes com php menor que o 5.6 (por ora, pelo menos durante o seu desenvolvimento) e apartir da sua primeira versão estável somente PHP >= 7.0 será aceitável.
- Este pacote "sped-da" se tornará uma dependência (sugerida) dos demais, e será de competência do desenvolvedor coloca-la como dependência de sua aplicação ou não, usando o composer.
- A renderização das classes principais (Danfe, Dacte, Damdfe, Dacce e o NFCe, este com ressalvas) devem ser feita em PDF ou em HTML.
- Essas classes principais devem extender a classe Da.php que é a construtora básica.
- Os documentos auxiliares podem ser renderizados a partir dos XMLs ou das classes construtoras, estabelecidas em cada pacote. Ou seja, tanto pode ser passada uma classe com os dados do documento como o próprio documento em XML.
- Deve ser permitida e facilitada a criação de um PDF com múltiplos documentos.
- Todas as classes devem observar os principios S.O.L.I.D. e atender aos PSR-2 e PSR-4.
- Todos os métodos devem possuir testes unitários utilizando o phpunit, de forma a evitar a quebra do funcionamento das classes.
- Será montado um esquema que permitirá o "pull request" apenas se os testes unitários não falharem.
- No caso especifico da NFC-e (Nota fiscal do consumidor) existe um outro pacote que poderá vir a ser usado, trata-se do "posprint" devido ao fato desse documento auxiliar normalmente ser impresso em impressoras térmicas POS, que não trabalham adequadamente com PDF e devem receber os dados em sua pópria linguagem (RAW data). Dessa forma o pacote "posprint" poderá tornar-se ser uma das dependências desse pacote.
- Para a conversão dos dados em PDF é necessário o uso de uma biblioteca que seja ativamente mantida, usada por um grande contingênte de programadores e que atenda minimamente os PSR. Uma grande atenção deve ser dedicada a esse ponto pois com a inclusão do PHP7 podem surgir problemas de incompatibilidade com bibliotecas que não sejam mantidas atualizadas.
Contribuindo
Este é um projeto totalmente OpenSource, para usa-lo e modifica-lo você não paga absolutamente nada. Porém para continuarmos a mante-lo é necessário qua alguma contribuição seja feita, seja auxiliando na codificação, na documentação ou na realização de testes e identificação de falhas e BUGs.
Este pacote esta listado no Packgist foi desenvolvido para uso do Composer, portanto não será explicitada nenhuma alternativa de instalação.
Durante a fase de desenvolvimento e testes este pacote deve ser instalado com:
composer require nfephp-org/sped-da:dev-master
Ou ainda alterando o composer.json do seu aplicativo inserindo:
"require": { "nfephp-org/sped-da" : "dev-master" }
NOTA: Ao utilizar este pacote ainda na fase de desenvolvimento não se esqueça de alterar o composer.json da sua aplicação para aceitar pacotes em desenvolvimento, alterando a propriedade "minimum-stability" de "stable" para "dev".
"minimum-stability": "dev"
Os stable realeases estão disponíveis (mas com algumas classes ainda em desenvolvimento), pode ser instalado com:
composer require nfephp-org/sped-da
Ou ainda alterando o composer.json do seu aplicativo inserindo:
"require": { "nfephp-org/sped-da" : "^0.1" }
Forma de uso
Log de mudanças e versões
Acompanhe o CHANGELOG para maiores informações sobre as alterações recentes.
Testing
Todos os testes são desenvolvidos para operar com o PHPUNIT
Security
Caso você encontre algum problema relativo a segurança, por favor envie um email diretamente aos mantenedores do pacote ao invés de abrir um ISSUE.
Credits
Roberto L. Machado (owner and developer)
License
Este pacote está diponibilizado sob LGPLv3 ou MIT License (MIT). Leia Arquivo de Licença para maiores informações.