sqginfo / sped-da
sped-da 包含创建 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-09-05 18:41:26 UTC
README
用于生成 Sped 标准中使用的辅助文档的类
注意:此仓库包含“遗留”类,用于创建原始 NFePHP 项目的 PDF。但是,这些类已被调整,一些功能可能缺失或与原始版本不同。
将从类中删除所有被认为不属于其范围的资源,并且将不再接受与任何特定系统相关的特定方法的新增。这些类应尽可能保持通用。
开发中(尚未完全准备就绪)
指导
以下是一般指导,供希望为代码构建和改进做出贡献的开发者参考。
由 Nicola Azuni 开发的新项目正在开发中。此新项目是 TCPDF 的一个演变,并且正在根据最先进的 PHP 实践进行构建。
因此,这些来自 sped-da 的类,作为 NFePHP 项目的遗留类,将在新项目 tc-lib-pdf 达到一个可用的版本时进行重构。
类的结构
生成辅助文档应考虑以下事项
- 此库应使用 PHP7 编写,不会测试或接受在小于 php 5.6 的环境中使用(至少在其开发过程中),并且从第一个稳定版本开始,仅接受 PHP >= 7.0。
- 此包 "sped-da" 将成为其他包的依赖项(建议),并且开发者有责任使用 composer 将其作为其应用程序的依赖项或不是。
- 主要类(Danfe、Dacte、Damdfe、Dacce 和 NFCe,但有保留)的渲染应使用 PDF 或 HTML 完成。
- 这些主要类应扩展基本构建器类 Da.php。
- 辅助文档可以从 XML 或每个包中建立的构建器类渲染。也就是说,可以传递包含文档数据的类,也可以传递 XML 格式的文档。
- 应允许并简化创建包含多个文档的 PDF。
- 所有类都必须遵守 S.O.L.I.D. 原则,并符合 PSR-2 和 PSR-4。
- 所有方法都必须使用 phpunit 进行单元测试,以避免破坏类的功能。
- 将建立一个方案,只有在单元测试通过的情况下才能进行“pull request”。
- 对于特定于 NFC-e(消费者发票)的情况,存在另一个可能被使用的包,即 "posprint"。这是由于该辅助文档通常在 POS 热敏打印机上打印,这些打印机不适合处理 PDF,并且应该以自己的语言(原始数据)接收数据。因此,"posprint" 包可能成为此包的依赖之一。
- 进行PDF数据转换需要使用一个活跃维护、被大量程序员使用且至少符合PSR标准的库。对此点应给予高度重视,因为随着PHP7的引入,可能与未及时更新的库出现兼容性问题。
贡献
这是一个完全开源的项目,使用和修改它您无需支付任何费用。但是为了继续维护该项目,需要您做出一些贡献,无论是协助编码、编写文档还是进行测试和识别错误和BUG。
此包已列在Packgist上,是为Composer开发使用的,因此不会提供任何安装替代方案。
在开发和测试阶段,应使用以下命令安装此包
composer require nfephp-org/sped-da:dev-master
或者还可以通过修改您的应用程序的composer.json文件来添加以下内容
"require": { "nfephp-org/sped-da" : "dev-master" }
注意:在开发阶段使用此包时,不要忘记将您的应用程序的composer.json文件中的"minimum-stability"属性从"stable"更改为"dev",以接受开发包。
"minimum-stability": "dev"
稳定版发布已可用(但有些类仍在开发中),可以使用以下方式安装
composer require nfephp-org/sped-da
或者还可以通过修改您的应用程序的composer.json文件来添加以下内容
"require": { "nfephp-org/sped-da" : "^0.1" }
用法
变更日志和版本信息
请关注变更日志,获取关于最近更改的更多信息。
测试
所有测试都是针对PHPUNIT进行开发的。
安全性
如果您发现与安全相关的问题,请直接向包维护者发送电子邮件,而不是创建ISSUE。
致谢
Roberto L. Machado(所有者和开发者)
许可
此包可在LGPLv3或MIT许可(MIT)下使用。请参阅许可文件获取更多信息。