wizbii / json-serializer
1.4.0
2024-09-17 05:23 UTC
Requires
- php: ^8.1
- ext-json: *
- psr/log: ^3
- symfony/config: ^6.4|^7
- symfony/dependency-injection: ^6.4|^7
- symfony/http-kernel: ^6.4|^7
- symfony/yaml: ^6.4|^7
Requires (Dev)
README
目标
此软件包旨在帮助您以最大性能将对象序列化和反序列化为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());
}
}
贡献
- 分支存储库
- 进行您的更改
- 使用
composer dev:checks
测试它们(它将运行测试、phpstan和cs:lint子命令) - 创建合并请求