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

dev-master / 0.1.x-dev 2019-10-07 19:34 UTC

This package is not auto-updated.

Last update: 2024-09-18 17:08:06 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 实践进行构建。

因此,这些来自 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"
}

使用方法

DANFE

更改日志和版本

有关最近更改的更多信息,请关注CHANGELOG

测试

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

安全性

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

鸣谢

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

许可

此包根据LGPLv3或MIT许可(MIT)提供。有关更多信息,请参阅许可文件