jannmylj/ivory-serializer

支持PHP 5.6+的序列化器,支持JSON、XML、YAML和CSV格式。本项目是egeloen/ivory-serializer的分支。

1.0.1 2021-01-11 08:55 UTC

This package is not auto-updated.

Last update: 2024-10-02 00:56:41 UTC


README

本项目是egeloen/ivory-serializer的分支

Travis Build Status AppVeyor Build status Code Coverage Scrutinizer Code Quality Dependency Status

Latest Stable Version Latest Unstable Version Total Downloads License

概览

Ivory序列化器是一个PHP 5.6+库,允许您通过访问者模式递归地在图中的每个节点上(反)序列化复杂数据。它支持CSV、JSON、XML和YAML格式。它还支持排除策略(分组、最大深度、循环引用、版本等)、命名策略(驼峰式、蛇形、Pascal大小写)和自动/显式映射(反射、注解、XML、YAML、JSON)等功能...

use Ivory\Serializer\Format;
use Ivory\Serializer\Serializer;

$stdClass = new \stdClass();
$stdClass->foo = true;
$stdClass->bar = ['foo', [123, 432.1]];

$serializer = new Serializer();

echo $serializer->serialize($stdClass, Format::JSON);
// {"foo": true,"bar": ["foo", [123, 432.1]]}

$deserialize = $serializer->deserialize($json, \stdClass::class, Format::JSON);
// $deserialize == $stdClass

文档

测试

该库通过PHPUnit进行了全面单元测试,代码覆盖率接近100%。要执行测试套件,请检查travis的配置

贡献

我们热爱贡献者!Ivory是一个开源项目。如果您想贡献,请随意提出一个PR!您可以参考CONTRIBUTING文件,其中将解释如何设置项目。

许可证

Ivory序列化器采用MIT许可证。有关完整的版权和许可信息,请阅读与源代码一起分发的LICENSE文件。