定制 desperado/xml-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

desperado/xml-bundle

Composer 安装命令:

composer require desperado/xml-bundle

包简介

Symfony XmlBundle

README 文档

README

Build Status SensioLabsInsight Latest Stable Version License Total Downloads

XML Builder/Reader Bundle for Symfony2

Installation

Using composer

Add desperado/xml-bundle to your composer.json file.

     "require": {
	     "desperado/xml-bundle": "dev-master"
     }

The next thing you should do is install the bundle by executing the following command:

php composer.phar update desperado/xml-bundle

Finally, add the bundle to the registerBundles function of the AppKernel class in the app/AppKernel.php file:

public function registerBundles()
{
    $bundles = array(
        ...
        new Desperado\XmlBundle\DesperadoXmlBundle,
        ...
    );

Usage

DIC

  • XmlEditor: desperado_xml.model.xml_editor
  • XmlGenerator: desperado_xml.model.xml_generator
  • XmlReader: desperado_xml.model.xml_reader
  • XmlPrepare: desperado_xml.model.xml_prepare

Create xml from array

<?php

use Desperado\XmlBundle\Model\XmlGenerator;

$params = [
            'Request' => [
                '@ns'               => [
                    '0_xmlns' => ['prefix' => 'xsi', 'uri' => 'http//www.w3.org/2001/XMLSchema-instance'],
                    '1_xmlns' => ['prefix' => 'xsd', 'uri' => 'http//www.w3.org/2001/XMLSchema'],
                ],
                '@attrib'           => [
                    'Id'      => 100,
                    'Service' => 200,
                    'xmlns'   => 'http://ekassir.com/ekassir/PaySystem/Server/eKassirV3Protocol'
                ],
                'PaymentParameters' => [
                    '@attrib'   => ['xmlns' => ''],
                    'Parameter' => [
                        '@attrib' => ['Name' => 'account'],
                        '@value'  => 'emptyAccount'
                    ]

                ]
            ]
        ];


        $xmlGenerator = new XmlGenerator;

        echo $xmlGenerator->generateFromArray($params);

prints:

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xsi="http//www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http//www.w3.org/2001/XMLSchema">
  <Request xmlns="http://ekassir.com/ekassir/PaySystem/Server/eKassirV3Protocol" xmlns:xsi="http//www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http//www.w3.org/2001/XMLSchema" Id="100" Service="200" xsi:xmlns="" xsd:xmlns="">
    <PaymentParameters xmlns="">
      <Parameter Name="account">emptyAccount</Parameter>
    </PaymentParameters>
  </Request>
</root>

Create XML without attributes, namespaces, etc.

<?php

use Desperado\XmlBundle\Model\XmlPrepare;
use Desperado\XmlBundle\Model\XmlGenerator;

        $params = [
            'Details' => [
                'PaymentParameters' => [
                    'first_node'  => 'first_node_value',
                    'second_node' => 'second_node_value'
                ]
            ]
        ];


        $xmlPrepare = new XmlPrepare;
        $xmlGenerator = new XmlGenerator;

        echo $xmlGenerator->setRootName('request')->generateFromArray($xmlPrepare->prepareArrayBeforeToXmlConvert($params));

prints:

<?xml version="1.0" encoding="UTF-8"?>
<request>
  <Details>
    <PaymentParameters>
      <first_node>first_node_value</first_node>
      <second_node>second_node_value</second_node>
    </PaymentParameters>
  </Details>
</request>

Parse XML without attributes, namespaces, etc.

<?php

use Desperado\XmlBundle\Model\XmlReader;

        $xmlString = '<?xml version="1.0" encoding="UTF-8"?>
                      <request>
                          <Details>
                              <PaymentParameters>
                                  <first_node>first_node_value</first_node>
                                  <second_node>second_node_value</second_node>
                              </PaymentParameters>
                          </Details>
                      </request>';

        $xmlReader = new XmlReader;

        print_r($xmlReader->processConvert($xmlString));

prints:

Array
(
    [Details] => Array
        (
            [PaymentParameters] => Array
                (
                    [first_node] => first_node_value
                    [second_node] => second_node_value
                )

        )

)

desperado/xml-bundle 适用场景与选型建议

desperado/xml-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 148.15k 次下载、GitHub Stars 达 9, 最近一次更新时间为 2014 年 07 月 24 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「xml generator」 「Xml Reader」 「Xml Formatter」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 desperado/xml-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 desperado/xml-bundle 我们能提供哪些服务?
定制开发 / 二次开发

基于 desperado/xml-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 148.15k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 9
  • 点击次数: 23
  • 依赖项目数: 2
  • 推荐数: 1

GitHub 信息

  • Stars: 9
  • Watchers: 3
  • Forks: 11
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-07-24