jas / xml
一个 XML (反)序列化库,可以通过注解完全配置。
dev-master
2015-03-24 21:23 UTC
Requires
- doctrine/annotations: 1.*
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 命名空间中的类名,通过回调实现