软金软件 / discriminator-default-normalizer
Symfony 序列化器正常化器,当找不到 DiscriminatorMap 时用于将对象正常化到父对象
1.1.0
2023-02-01 16:28 UTC
Requires
- php: ^8.1
- psr/log: ^3.0
- symfony/property-access: ^6.1
- symfony/serializer: ^6.1
Requires (Dev)
- phpunit/phpunit: ^9.5.26
This package is auto-updated.
Last update: 2024-08-31 00:31:41 UTC
README
如何使用它
use SoftFineWare\SerializerDiscriminatorDefault\Attributes\DiscriminatorDefault; use Symfony\Component\Serializer\Annotation\DiscriminatorMap; #[DiscriminatorDefault(class: DefaultRequest::class)] #[DiscriminatorMap(typeProperty: 'type', mapping: [ 'a' => ARequest::class, ])] abstract class BaseRequest { public function __construct( public readonly string $id, public readonly string $type ) { } } class DefaultRequest extends BaseRequest {}
如果没有匹配,json 将被反序列化到由 DiscriminatorDefault
属性指定的默认类
DiscriminatorDefault
不应指向具有 DiscriminatorMap
的类,新的子类必须创建为 DefaultRequest
上面的
安装
此正常化器必须在 -999 之前具有优先级
\Symfony\Component\Serializer\Normalizer\ObjectNormalizer::class