adelio-junior/sped-da

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

v0.1.7 2017-12-20 21:17 UTC

This package is not auto-updated.

Last update: 2024-09-21 16:13:37 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 打印机上打印,而 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"
}

使用方法

电子发票

变更日志和版本

关注CHANGELOG以获取有关最新变更的更多信息。

测试

所有测试都是为了与PHPUNIT一起运行而开发的。

安全

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

鸣谢

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

许可协议

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