jas/xml

一个 XML (反)序列化库,可以通过注解完全配置。

dev-master 2015-03-24 21:23 UTC

This package is auto-updated.

Last update: 2024-09-09 12:45:59 UTC


README

一个 XML (反)序列化库,可以通过注解完全配置。

安装

将此行添加到您的 composer.json "require" 部分

composer.json

    "require": {
       ...
       "jas/xml": "*"

用法

use jas\xml\Meta as Xml;
/**
 * @Xml\Document(rootNode = "foo")
 */
class MyObject {
    /**
     * @var int
     * @Xml\Attribute(name="bar")
     */
    protected $foo = 4;
    /**
     * @var string
     * @Xml\Element(name="hello")
     */
    protected $bar = "hello world";
}

$xml = jas\xml\Writer::toXML(new MyObject); -> /*
<?xml version="1.0" encoding="utf-8"?>
<foo bar="4">
  <hello>world</hello>
</foo>
*/

$myobject = jas\xml\Reader::fromXML('MyObject', $xml);

待办事项

  • 将读取器/写入器逻辑外包到 "布局"。布局应描述数据如何在对象和 XML 之间映射。这对于可能因不同类型的元素而混乱的列表尤其重要... 这将是一个非常复杂的步骤。
  • 将读取器和写入器组合到 "处理器" 中,该处理器可以用默认选项进行配置,或者可以在没有注解的情况下设置 XML 定义(以支持 php 或 yaml 配置等)。(实现问题:如何通过读取器/写入器管理 "静态" 使用!?)
  • 从 @var-doccomment 读取属性/元素类型,并进行命名空间解析
  • 命名空间支持
  • 动态类型映射,自动将类型名称转换为 PHP 命名空间中的类名,通过回调实现