cyradin / serializer
此包已被弃用,不再维护。没有建议替代包。
基于PHP反射的序列化器
1.1.0
2020-03-22 19:02 UTC
Requires
- php: ^7.4
- doctrine/collections: ^1.6
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.0.0
- codeception/module-phpbrowser: ^1.0.0
This package is auto-updated.
Last update: 2021-10-01 19:04:38 UTC
README
使用ReflectionClass将对象转换为数组的库
安装
$ composer require cyradin/serializer
使用方法
<?php use Cyradin\Serializer\Serializer; use Cyradin\Serializer\Enum\LetterCase; use Cyradin\Serializer\Normalizer\ReflectionNormalizer; use Cyradin\Serializer\Factory\FormatterFactory; use Cyradin\Serializer\Factory\ContextFactory; $normalizer = new ReflectionNormalizer(); $factory = new ContextFactory(new FormatterFactory()); $serializer = new Serializer($factory, $normalizer); /** @var object|object[] $object */ $result = $serializer->toArray($object); $context = $factory->createSerializerContext(); $context->setCase(LetterCase::FORMAT_SNAKE_CASE); // transform property names to snake case $context->setSerializeNull(true); // do not skip null property values /** @var object|object[] $object */ $result = $serializer->toArray($object);
性能基准
$ composer benchmark
标准化器
标准化器 | 1 | 100 | 10000 |
---|---|---|---|
symfony get-set | 0.000291 | 0.016245 | 1.446671 |
symfony 对象 | 0.000369 | 0.020275 | 2.014218 |
symfony 属性 | 0.000161 | 0.008775 | 0.835745 |
jms | 0.005103 | 0.015551 | 1.250648 |
本包 | 0.000296 | 0.004986 | 0.467005 |