yadddl / serializer
又一串行化库
v0.6.0
2022-02-09 11:50 UTC
Requires
- php: ^8.0|^8.1
- symfony/property-access: ^4.4|^5.3|^6.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.0
- psalm/plugin-phpunit: ^0.16.1
- vimeo/psalm: ^4.0
- yadddl/value-object: ^0.5
Suggests
- yadddl/value-object: If you need a ready to use primitive objects
This package is auto-updated.
Last update: 2024-09-09 17:22:50 UTC
README
由另一个领域驱动设计库(YADDDL)提供
这个库实现了一个串行化器,并遵循以下规则
-
不要使用额外元数据:PHP 语言已经足够表达你需要的一切。
-
约定优于配置:只需配置与标准用例不同的选项,这已经涵盖了大多数情况。
它与同一系列的 值对象 项目配合使用,但也可以单独使用。只需确保遵循 约定!
它不涵盖所有可能用例,因此如果你需要,可以将其用于,或者如果你喜欢我们所做的工作并希望扩展它,可以做出贡献。
使用方法
composer require yadddl/serializer
入门
给定一个简单的 DTO
class SillyDTO { public function __construct( private string $propertyOne, private int $propertyTwo, private string $hiddenProperty ) {} public function getPropertyOne(): string { return $this->propertyOne; } public function getPropertyTwo(): int { return $this->propertyTwo; } }
串行化它的简单方法是这个
use Yadddl\Serializer\Factory\SerializerBaseFactory; // Fastest way to create a basic serializer $serializer = SerializerBaseFactory::make(); $dto = new SillyDTO('one', 2, 'hidden'); $data = $serializer->serialize($dto); echo json_encode($data, JSON_PRETTY_PRINT);
生成的 JSON
{ "propertyOne": "one", "propertyTwo": 2 }