maniaplanet/manialib-xml
最新稳定版本:v0.1.1
Composer 安装命令:
composer require maniaplanet/manialib-xml
包简介
Object-oriented PHP library for writing XML.
关键字:
README 文档
README
ManiaLib\XML is an object-oriented PHP library for writing XML.
Installation
{
"require": {
"maniaplanet/manialib-xml": "0.2.*@dev"
}
}
Features
- Simple and flexible object-oriented architecture
- Configurable rendering drivers
- Symfony\Component\EventDispatcher integration
Architecture
- You construct a tree of
ManiaLib\XML\Node. - Setter methods return the element for chaining (eg.
$node->setNodeName('foo')->setNodeValue('bar');. ManiaLib\XML\Node::create()instanciates the object and returns it for easy chaining (eg.Node::create()->setNodeName('foo');).- If you're running PHP 5.4+ you can use class member access on instantiation instead eg.
(new Node)->setNodeName('foo');. - See
ManiaLib\XML\NodeInterfacefor reference. - You then pass the root
Nodeto an instance ofManiaLib\XML\Rendering\Renderer.
Examples
<?php use ManiaLib\XML\Node; use ManiaLib\XML\Rendering\Renderer; require_once '../vendor/autoload.php'; // Let's build a Node tree. Here is the root element. $root = Node::create() ->setNodeName('rootElement') ->setAttribute('rootAttrivute', '1.0'); // This is one way to append child, ie. "append this element to its parent" Node::create() ->setNodeName('someElement') ->setAttribute('someAttribute', 'foo') ->setAttribute('otherAttribute', 'bar') ->setNodeValue('Hello world') ->appendTo($root); // This is another way, ie. "appends a child to this element" $node = Node::create()->setNodeName('anotherOne'); $root->appendChild($node); // Let's render the tree $renderer = new Renderer(); $renderer->setRoot($root); echo $renderer->getXML();
It will output:
<rootElement rootAttrivute="1.0"> <someElement someAttribute="foo" otherAttribute="bar"> Hello world </someElement> <anotherOne/> </rootElement>
More in /examples directory
Tests
A simple suite tests .php files in the /examples directory against their associated .xml renders. To run the tests we recommand:
- PHPUnit system-wide installation via Composer
- Run
composer install - Run
phpunit
Todo
- XMLComment
- PhpDoc
- Raw node value
- Other unsupported Node features?
统计信息
- 总下载量: 11.3k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 3
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-05-21