rodnaph / edhen
该包最新版本(0.16.0)没有可用的许可证信息。
编码/解码 EDN
0.16.0
2021-01-22 21:31 UTC
Requires
- php: >=5.3.3
Requires (Dev)
- phpunit/phpunit: 3.7.*
README
一个用于在 EDN 和 PHP 数据结构之间编码/解码的工具。
注意
当从 EDN 转换到 PHP 时,转换是有损的,因为 EDN 支持的数据类型丰富性在 PHP 中不可用。因此,从 EDN 到 PHP 再转换回 EDN 不会丢失数据,但会丢失类型信息。
用法
接口通过 Edhen 类的一些静态函数实现。要解码一个 EDN 元素...
$element = Edhen::decode('(1 :foo [2])'); // array(1, ':foo', array(2))
如果您有包含多个元素的 EDN,可以使用 decodeAll
$elements = Edhen::decodeAll(':foo :bar :baz'); // array(':foo', ':bar', ':baz')
然后,使用 encode 函数进行编码,传递要编码的数据...
$ednString = Edhen::encode(array(1, 2)); // '[1 2]'
数据类型转换
当将 EDN 解码为 PHP...
内置标签
当将 PHP 编码为 EDN...
是否将数组转换为向量或哈希表的决定是通过检查其键来完成的。如果键中有任何非数字,则使用哈希表。
EDN 生成为一个单独的字符串,目前不支持格式化输出。应使用另一个工具进行此操作。
自定义标签处理程序
要实现自己的 标签处理程序,创建一个实现 Edhen\TagHandler 接口的类,并将其作为第二个参数传递给 decode/decodeAll
$myHandler = new MyCustomTagHandler(); $element = Edhen::decode($edn, array($myHandler));
您可以在 测试中看到一个示例。
安装
Edhen 可以通过 Composer 安装。