se / opentrans
允许读取、创建和写入兼容OpenTRANS的文档
v0.1.5
2020-10-21 09:13 UTC
Requires
- php: >=5.3.3
- jms/serializer: >=0.11,<=0.14
- symfony/event-dispatcher: 2.3.*
- symfony/serializer: 2.3.*
Requires (Dev)
- phploc/phploc: *
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-19 02:46:56 UTC
README
允许您从PHP中读取、创建和写入兼容OpenTRANS的文档
开发分支是master分支。
目录
安装
推荐的安装方式是通过 Composer。
{ "require": { "se/opentrans": "dev-master" } }
使用
构建文档
假设您已经有了一个构建器(见 文档工厂)
<?php use \SE\Component\OpenTrans; $document = $builder->getDocument(); $document->getHeader()->getOrderInfo()->setOrderId('00000000001'); $orderLine1 = new OpenTrans\Node\Order\ItemNode(); $orderLine1->setLineId('P00000001'); $document->addItem($orderLine1); $xml = $builder->serialize();
返回
<?xml version="1.0" encoding="ISO-8859-1"?> <ORDER version="1.0" type="standard"> <ORDER_HEADER> <CONTROL_INFO> <GENERATOR_INFO/> <GENERATION_DATE/> </CONTROL_INFO> <ORDER_INFO> <ORDER_ID>00000000001</ORDER_ID> </ORDER_INFO> </ORDER_HEADER> <ORDER_ITEM_LIST> <ORDER_ITEM> <LINE_ITEM_ID>P00000001</LINE_ITEM_ID> </ORDER_ITEM_LIST> <ORDER_SUMMARY/> </ORDER>
文档工厂
<?php use \SE\Component\OpenTrans; // Pick a factory to create your document (i.e. an Order) $loader = new OpenTrans\NodeLoader(); $factory = new OpenTrans\DocumentFactory\OrderFactory($loader); $builder = new OpenTrans\DocumentBuilder($factory); $builder->build(); // bootstraps the default document structure $document = $builder->getDocument(); // ... build your document
根据文档类型解决文档工厂
<?php use \SE\Component\OpenTrans; // Let the DocumentFactoryResolver pick the factory you need $loader = new OpenTrans\NodeLoader(); $factoryClass = OpenTrans\DocumentFactory\DocumentFactoryResolver::resolveFactory( $loader, OpenTrans\DocumentType::DOCUMENT_ORDER ); $factory = new $factoryClass($loader); $builder = new OpenTrans\DocumentBuilder($factory); $builder->build(); // bootstraps the default document structure $document = $builder->getDocument(); // ... build your document
运行测试
$> vendor/bin/phpunit
Symfony2包
此库通过 OpenTransBundle 集成到Symfony2中。
路线图
- 实现文档类型
- (x) 订单
- ( ) 发票
- ( ) 订单变更
- ( ) 订单响应
- ( ) 报价
- ( ) 询价单
- ( ) 收到确认