更新日志 1.14.0 — 2024 年 11 月 4 日¶
重要变更¶
PHP 8.4 支持🐘
在正式发布之前享受即将推出的 PHP 8.4 版本!
漂亮的 JSON 输出
JSON_PRETTY_PRINT选项现在受 JSON 规范化器支持,并将使用空格和换行符格式化输出:
$input = [
'value' => 'foo',
'list' => [
'foo',
42,
['sub']
],
'associative' => [
'value' => 'foo',
'sub' => [
'string' => 'foo',
'integer' => 42,
],
],
];
(new \CuyZ\Valinor\MapperBuilder())
->normalizer(\CuyZ\Valinor\Normalizer\Format::json())
->withOptions(\JSON_PRETTY_PRINT)
->normalize($input);
// Result:
// {
// "value": "foo",
// "list": [
// "foo",
// 42,
// [
// "sub"
// ]
// ],
// "associative": {
// "value": "foo",
// "sub": {
// "string": "foo",
// "integer": 42
// }
// }
// }
强制数组作为 JSON 输出中的对象
JSON_FORCE_OBJECT选项现在受 JSON 规范化器支持,并将强制数组的输出为对象:
(new \CuyZ\Valinor\MapperBuilder())
->normalizer(Format::json())
->withOptions(JSON_FORCE_OBJECT)
->normalize(['foo', 'bar']);
// {"0":"foo","1":"bar"}
新功能¶
- 在 JSON 规范化器 ( f3e8c1 ) 中添加对
JSON_FORCE_OBJECT选项的支持 - 添加对 PHP 8.4 ( 07a06a ) 的支持
- 使用 JSON 规范化器处理
JSON_PRETTY_PRINT选项 ( 950395 )
错误修复¶
- 正确处理浮式铸造( 8742b2 )
- 处理没有类作用域的 Closure 的命名空间 ( 7a0fc2 )
- 规范化和映射到枚举时防止缓存损坏 ( e695b2 )
- 正确处理类共享类名和命名空间组名( 6e68d6 )