xakepehok / scalarizer
Scalarizer可以将值对象转换为标量值
0.1.0
2019-08-05 09:29 UTC
Requires
- php: >=7.1.0
- ext-json: *
Requires (Dev)
- phpunit/phpunit: 7.5
This package is auto-updated.
Last update: 2024-09-05 21:25:55 UTC
README
\XAKEPEHOK\Scalarizer\Scalarizer
- 组件,可以帮助您从值对象中提取标量值。Scalarizer可以接受任何类型的输入值并尝试返回单个标量值
用法
Scalarizer构造函数接受两个参数
- 关联数组,其中每个键是类名,值是可以将类转换为标量值的可调用对象
- 通过反射检查类并尝试返回标量值,如果类只有一个属性
<?php $scalarizer = new \XAKEPEHOK\Scalarizer\Scalarizer( [DateTimeInterface::class => function (DateTimeInterface $dateTime) { return $dateTime->format('Y-m-d H:i:s'); }], true //use reflection ); echo $scalarizer->scalarize($someValue);
标量化方法优先级
- 检查已标量或null值作为输入
- 通过规则(可调用对象数组)标量化
- 通过实现JsonSerializable::jsonSerialize()方法(如果已实现)标量化对象
- 通过实现Class::__toString()方法(如果已实现)标量化对象
- 通过反射标量化。如果类只有一个属性,则返回某些值