softcomtecnologia / sped-da
sped-da 包含用于创建 Sped 项目中提到的辅助文档的类。
Requires
- php: >=5.6
- nfephp-org/posprint: ^0.1
- nfephp-org/sped-common: ^5.0
- zendframework/zend-barcode: ^2.6
Requires (Dev)
- phpunit/phpunit: ^5.7
- scrutinizer/ocular: ^1.3
- squizlabs/php_codesniffer: ^2.8
This package is not auto-updated.
Last update: 2024-09-18 17:08:06 UTC
README
用于生成 Sped 标准所使用的辅助文档的类
注意:此存储库包含“遗留”类,用于创建 NFePHP 项目原始 PDF。但是,这些类已进行调整,并且一些功能可能缺失或与原始版本不同。
所有被认为不属于这些类作用域的资源都将从这些类中移除,并且将不再接受有关任何系统特定性的方法添加。这些类应该尽可能地保持通用性。
开发中(尚未完全准备好)
指导
以下是一般性指导,供希望为代码构建和改进做出贡献的开发者参考。
Nicola Azuni 正在开发一个由 TCPDF 启发的新项目。此新项目是 TCPDF 的发展,并按照最先进的 PHP 实践进行构建。
因此,这些来自 NFePHP 项目的 sped-da 类将需要重构,一旦新项目 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 softcomtecnologia/sped-da:dev-master
或者,还可以修改您的应用程序的composer.json文件,添加以下内容
"require": { "softcomtecnologia/sped-da" : "dev-master" }
注意:在开发阶段使用此包时,不要忘记修改您的应用程序的composer.json,以便接受开发包,将“minimum-stability”属性从“stable”更改为“dev”。
"minimum-stability": "dev"
稳定版本已可用(但某些类仍在开发中),可以使用以下方式安装
composer require softcomtecnologia/sped-da
或者,还可以修改您的应用程序的composer.json文件,添加以下内容
"require": { "softcomtecnologia/sped-da" : "^0.1" }
使用方法
更改日志和版本
有关最近更改的更多信息,请关注CHANGELOG。
测试
所有测试都是为与PHPUNIT一起运行而开发的
安全性
如果您发现与安全相关的问题,请直接向包的维护者发送电子邮件,而不是创建一个ISSUE。
鸣谢
Roberto L. Machado(所有者和开发者)
许可
此包根据LGPLv3或MIT许可(MIT)提供。有关更多信息,请参阅许可文件。