ads-system / sped-da
sped-da 包含创建 Sped 项目中提到的辅助文档的类。
Requires
- php: >= 7.4
- ext-dom: *
- ext-gd: *
- ext-mbstring: *
- ads-system/sped-common: ^5.1.0
- tecnickcom/tc-lib-barcode: ^1
Requires (Dev)
- phpstan/phpstan: ^1.4
- phpunit/phpunit: ^9.3
- scrutinizer/ocular: ^1.8
- sebastian/phpcpd: ^6.0
- squizlabs/php_codesniffer: ^3.6
Suggests
- nfephp-org/posprint: ^0.1
This package is auto-updated.
Last update: 2024-09-24 18:13:24 UTC
README
用于生成 Sped 标准中使用的辅助文档的类
注意:此仓库包含“遗留”类,用于创建原始 NFePHP 项目中的 PDF。但是,这些类已进行调整,一些功能可能缺失或与原始版本有所不同。
将从类中移除所有被视为不属于其范围的资源,并且将不再接受与任何系统特定性相关的方法的添加。必须记住,这些辅助文档(Danfe、Dacte 和 Damdfe)的唯一目的是在运输过程中跟踪标记。它们无意成为行政或操作信息来源。对于这些功能,XML 更为合适。这些类应尽可能遵循 SEFAZ 的指导原则。这些类应尽可能通用和简单。如果您需要使 DANFE 或任何其他文档在资源方面与现有资源不同,请创建自己的 PDF 生成器。
指南
以下是为希望为构建和改进代码做出贡献的开发者提供的一般性指导。
此仓库中的类将被重构并分为 4 个其他仓库
- sped-da-common (包含用于创建 PDF 的通用类)
- sped-da-nfe (包含创建 NFe 文档 PDF 的类)
- sped-da-cte (包含创建 CTe 文档 PDF 的类)
- sped-da-mdfe (包含创建 MDFe 文档 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热敏打印机上打印,而POS打印机不适合处理PDF,需要接收其自身的原始数据。因此,"posprint"包可能成为该包的依赖之一。
- 为了将数据转换为PDF,需要使用一个活跃维护、被大量程序员使用且至少满足PSR标准的库。对此点应给予高度重视,因为随着PHP7的引入,可能会出现与未更新维护的库不兼容的问题。
贡献
这是一个完全开源的项目,使用和修改它您不需要支付任何费用。但是为了继续维护它,需要某些贡献,无论是协助编码、编写文档还是进行测试和错误及BUG的识别。
此包已在Packgist上列出,是为Composer开发的,因此不会提供任何安装替代方案。
在开发和测试阶段,此包应使用以下方式安装:
composer require ads-system/sped-da:dev-master
或者,还可以通过修改您的应用程序的composer.json文件来安装,方法是插入以下内容:
"require": { "ads-system/sped-da" : "dev-master" }
注意:在使用此包的早期开发阶段,不要忘记修改您的应用程序的composer.json以接受开发包,将"minimum-stability"属性从"stable"更改为"dev"。
"minimum-stability": "dev"
稳定版本(但有些类仍在开发中)可用,可以使用以下方式安装:
composer require ads-system/sped-da
或者,还可以通过修改您的应用程序的composer.json文件来安装,方法是插入以下内容:
"require": { "ads-system/sped-da" : "^0.3" }
使用方法
变更日志和版本
请关注CHANGELOG以获取有关最近更改的更多信息。
测试
所有测试都是为与PHPUNIT一起运行而开发的。
安全性
如果您发现与安全相关的问题,请直接向包的维护者发送电子邮件,而不是打开一个ISSUE。
致谢
Roberto L. Machado(所有者和开发者)Newton Pasqualini Filho(简化版DANFE)
许可证
此包可供使用,根据LGPLv3或MIT许可证(MIT)。请阅读许可证文件以获取更多信息。