brianseitel / ook
将 XML/JSON 文档从一个标准转换为另一个标准的包
dev-master
2016-04-26 07:13 UTC
Requires
- php: >=5.5.9
- symfony/yaml: ^3.0
Requires (Dev)
- phpunit/phpunit: 5.3.*
This package is not auto-updated.
Last update: 2024-09-14 19:04:04 UTC
README
一个用于使用 YAML 或 JSON 配置翻译 XML/JSON 文件的翻译器。
什么是 "Ook"?
在 Larry Niven 的《Discworld》系列中,图书馆员是早期变成猩猩的巫师。他完全理解摩普克语(英语),但总是用猩猩的口吻说话,使用像 "Ook" 和 "Eek" 这样的词。大多数人类角色理解起来没有太大问题,但偶尔也会有人不熟悉图书馆员遇到他,无法完全理解那个特定的 "Ook" 意思。图书馆员试图通过编写猩猩-摩普克语词典来解决这一问题,但还没有超出 "Ook"。
哦,我明白了。
是的,很有趣,对吧?
快速入门
定义配置
Ook 在定义翻译数组之间的规则时使用 "点" 表示法。这里是一个点表示法的快速示例
$array = ['items' => [ 'item' => [ ['name' => 'computer', 'price' => 1000], ['name' => 'monitor', 'price' => 150] ] ]; Arr::get('items.item.0.price') // 1000
我们将使用同样的方法来定义 XML 的规则集
sample.xml
<items> <item> <name>computer</name> <price>1000</price> </item> <item> <name>monitor</name> <price>150</price> </item> </items>
Ook 将将其转换为具有 item.price
键的数组。让我们假设我们想将 item.price
转换为 inventory.item.price
config.yaml
inventory.item.*.name: items.item.*.name inventory.item.*.price: items.item.*.price
要翻译它,我们只需运行
$librarian = new Ook\Librarian('sample.xml', 'config.yaml'); $output = $librarian->transform();
这将返回
Array
(
[inventory] => Array
(
[item] => Array
(
[0] => Array
(
[name] => computer
[price] => 1000
)
[1] => Array
(
[name] => monitor
[price] => 150
)
)
)
)
其他详细信息
请查看 /examples
目录以获取更多示例。