kigkonsult / sie5sdk
Sie5 SDK,基于Sie5 XSD模式
Requires
- php: ^8.0
- ext-dom: *
- ext-libxml: *
- ext-simplexml: *
- ext-xmlreader: *
- ext-xmlwriter: *
- kigkonsult/dsigsdk: ^v1.4
- kigkonsult/loggerdepot: ^v1.04
- psr/log: ^1.1.0
Requires (Dev)
- fakerphp/faker: dev-main
- katzgrau/klogger: dev-master
- phpcompatibility/php-compatibility: 9.3.5
- phpstan/phpstan: dev-master
- phpunit/phpunit: ^9.1.0
- squizlabs/php_codesniffer: 3.5.5
This package is auto-updated.
Last update: 2024-08-24 22:01:23 UTC
README
并提供
- src/Dto,包括所有元素(/complexType)在 XSD
- 具有获取器和验证设置器
- 验证能力与 XSD 相当
- 其他一些逻辑
- 解析 XML 根元素 Sie/SieEntry 到 dto(s)
- 将 Sie/SieEntry dto(s) 写入 XML 字符串 / DomNode
使用方法,解析 XML
Sie5Sdk 使用 XMLReader 解析输入并接受 Sie 和 SieEntry 根元素。
解析导出 Sie XML 文件
<?php namespace Kigkonsult\Sie5Sdk; use Kigkonsult\Sie5Sdk\XMLParse\Sie5Parser; $sie = Sie5Parser::factory()->parse( file_get_contents( 'SieExportFile.xml' ) ); foreach( $sie->getAccounts()->getAccount() as $account ) { $id = $account->getId(); //... } //...
解析导入 SieEntry XML 文件
<?php namespace Kigkonsult\Sie5Sdk; use Kigkonsult\Sie5Sdk\XMLParse\Sie5Parser; $sieEntry = Sie5Parser::factory()->parse( file_get_contents( 'SieImportFile.xml' ) ); foreach( $sieEntry->getAccounts()->getAccount() as $account ) { $id = $account->getId(); //... } //...
XML 解析器将 XMLreader 节点属性(baseURI、localName、name、namespaceURI、prefix)保存为每个 XML(Dto)元素作为 'XMLattributes',以及 XML 属性(xmlns、xmlns:*、schemaLocation),如果设置。
使用方法,构建结构
构建导入 SieEntry 结构
<?php namespace Kigkonsult\Sie5Sdk; use Kigkonsult\Sie5Sdk\XMLWrite\Sie5Writer; use Kigkonsult\Sie5Sdk\Dto\SieEntry; use Kigkonsult\Sie5Sdk\Dto\AccountsTypeEntry; use Kigkonsult\Sie5Sdk\Dto\AccountTypeEntry; $sieEntry = sieEntry::factory() ->setXMLattribute( SieEntry::XMLNS_XSI, SieEntry::XMLSCHEMAINSTANCE ) ->setXMLattribute( SieEntry::XMLNS_XSD, SieEntry::XMLSCHEMA ) ->setXMLattribute( SieEntry::XSI_SCHEMALOCATION, SieEntry::SIE5SCHEMALOCATION ) ->setXMLattribute( SieEntry::XMLNS, SieEntry::SIE5URI ); ->setAccounts( AccountsTypeEntry::factory() ->setAccount( [ AccountTypeEntry::factory() ->setId( '1910' ) ->setName( 'Kassa' ) ->setType( AccountTypeEntry::ASSET ), AccountTypeEntry::factory() ->setId( '1930' ) ->setName( 'Bank' ) ->setType( AccountTypeEntry::ASSET ) ] ) ) ->set... $XMLstring = Sie5Writer::factory()->write( $sieEntry ); ...
XML 属性
您还可以使用以下方式设置 XMLattribute(显式设置,如果重写解析的 sie xml 文件则不是必需的)
$sieEntry->setXMLAttribut( <key>, <value> );
设置(例如前缀)并向下传播
$sieEntry->setXMLAttribut( SieEntry::PREFIX, <value>, true );
您可以删除(单个 '元素')XMLattribute
$dsig->unsetXMLAttribut( <key> );
取消设置(例如前缀)并向下传播
$sieEntry->unsetXMLAttribut( SignatureType::PREFIX, true );
获取并遍历 XMLAttributes
foreach( $sieEntry->getXMLAttributes() as $key => $value { ... }
使用方法,以 XML 格式输出
Sie5Sdk 使用 XMLWriter 创建输出。
$XMLstring = Sie5Writer::factory()->write( $sieEntry );
XMLwriter 为每个元素添加
- 具有前缀的元素名称,如果存在
- XMLattribute xmlns、xmlns:* 和 schemaLocation,如果存在。
使用方法,以 DomNode 格式输出
$domNode = Sie5Writer::factory()->write( $sieEntry, true );
信息
Sie5Sdk 需要 PHP7+。
有关类结构、架构和使用方法,请检查
- XSD
- docs/info.txt
- docs/Sie5Sdk.png dto 类设计
- test/DtoLoader 目录
您可以在以下位置找到方便的常量
Sie5Sdk 使用
- kigkonsult\DsigSdk
- 用于 Signature 部分
- kigkonsult\loggerdepot 和 Psr\Log
- 用于(解析器-)记录
Sie5Sdk 支持元素中的 属性 扩展
- Account、Company、CustomerInvoice、Customer、FileInfo、FixedAsset、GeneralObject、JournalEntry、LedgerEntry、Supplier
安装
通过命令行使用 Composer
composer require kigkonsult/sie5sdk
在您的 composer.json
中使用 Composer
{ "require": { "kigkonsult/sie5sdk": "dev-master" } }
版本 1.4 支持 PHP 8.0,1.2 7.4,1.1 7.0。
获取访问权限
namespace Kigkonsult\Sie5Sdk; ... include 'vendor/autoload.php';
否则,下载并获得访问权限...
namespace Kigkonsult\Sie5Sdk; ... include 'pathToSource/sie5sdk/autoload.php';
赞助
欢迎使用 paypal.me/kigkonsult 进行捐赠。如需发票,请通过 电子邮件 联系。
支持
如需获得支持,请访问 Github/issues。
许可证
本项目遵循 LGPLv3 许可证