nfephp-innovare/sped-da-innovare

sped-da 包含用于创建 Sped 项目中提到的辅助文档的类。

dev-master / 0.1.x-dev 2019-10-08 16:05 UTC

This package is auto-updated.

Last update: 2024-09-09 04:20:04 UTC


README

用于生成 Sped 标准所用的辅助文档的类

注意:此存储库包含“遗留”类,用于创建原始 NFePHP 项目的 PDF。然而,这些类已进行调整,某些功能可能不存在或与原始版本不同。

将移除所有被认为不属于此类作用域的资源,并且不再接受与任何特定系统相关的特定方法。这些类应尽可能保持通用。

开发中(尚未完全准备好)

Build Status Coverage Status Quality Score Latest Version on Packagist License Total Downloads

Issues Forks Stars Chat

指导

以下是一般指导方针,供希望为代码构建和改进做出贡献的开发者参考。

Nicola Azuni 正在开发一个由 TCPDF 衍生的新项目。此新项目是 TCPDF 的发展,并根据最新的 PHP 实践构建。

因此,这些来自 sped-da 的类,作为 NFePHP 项目的遗留,将在 tc-lib-pdf(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"
}

使用方法

DANFE

变更日志和版本记录

请关注变更日志,以获取有关最近更改的更多信息。

测试

所有测试都是为与PHPUNIT一起操作而开发的

安全

如果你发现与安全相关的问题,请直接向包的维护者发送电子邮件,而不是打开一个ISSUE。

致谢

Roberto L. Machado(所有者和开发者)

许可证

此包可在LGPLv3或MIT许可证(MIT)下使用。阅读许可证文件以获取更多信息。