se/opentrans

允许读取、创建和写入兼容OpenTRANS的文档

v0.1.5 2020-10-21 09:13 UTC

README

Latest Stable Version SensioLabsInsight

允许您从PHP中读取、创建和写入兼容OpenTRANS的文档

开发分支是master分支。

Build Status

目录

安装

使用

路线图

安装

推荐的安装方式是通过 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) 订单
    • ( ) 发票
    • ( ) 订单变更
    • ( ) 订单响应
    • ( ) 报价
    • ( ) 询价单
    • ( ) 收到确认