wizbii/json-serializer

安装数量: 16,680

依赖项: 1

建议者: 0

安全性: 0

星标: 0

分支: 1

类型:symfony-bundle

1.4.0 2024-09-17 05:23 UTC

This package is auto-updated.

Last update: 2024-09-17 05:26:08 UTC


README

pipeline status coverage report

目标

此软件包旨在帮助您以最大性能将对象序列化和反序列化为JSON。为此,不使用反射,并且开发者必须为每个对象实现2个方法。它依赖于php 7.4+和Symfony 5.0+

安装

composer require wizbii/json-serializer-bundle

使用方法

首先,创建一个实现 ArraySerializable 接口的对象

use Wizbii\JsonSerializerBundle\ArraySerializable;

class SimpleSerializableObject implements ArraySerializable
{
    private string $foo;

    public function serialize(): array
    {
        return [
            'foo' => $this->foo,
        ];
    }

    public static function deserialize(array $contentAsArray)
    {
        return (new SimpleSerializableObject())->setFoo($contentAsArray['foo'] ?? '');
    }

    public function getFoo(): string
    {
        return $this->foo;
    }

    public function setFoo(string $foo): SimpleSerializableObject
    {
        $this->foo = $foo;

        return $this;
    }
}

然后,使用 Serializer 服务对其进行(反)序列化

class MyController
{
    private Serializer $serializer;
    
    public function __construct(Serializer $serializer) {
        $this->serializer = $serializer;
    }

    public function getSimpleObjectAction() {
        $simpleObject = (new SimpleObject())->setFoo('bar');
        return new Response($this->serializer->serialize($simpleObject));
    }

    public function getFoo() {
        $content = '{"foo":"bar"}';
        $simpleObject = $this->serializer->deserialize($content, SimpleObject::class);
        return new Response($simpleObject->getFoo());
    } 
}

贡献

  1. 分支存储库
  2. 进行您的更改
  3. 使用 composer dev:checks 测试它们(它将运行测试、phpstan和cs:lint子命令)
  4. 创建合并请求