class ValueObject {
public function __construct(public readonly int $someCamelCaseProperty = 0) {
}
}
$normalizer = new ObjectNormalizer(
new ClassMetadataFactory(new AttributeLoader()),
new CamelCaseToSnakeCaseNameConverter(),
);
$result = $normalizer->denormalize(
['some_camel_case_property' => 1],
ValueObject::class,
context: [ObjectNormalizer::ALLOW_EXTRA_ATTRIBUTES => false],
);
assert($result->someCamelCaseProperty === 1);
$result = $normalizer->denormalize(
['someCamelCaseProperty' => 1],
ValueObject::class,
context: [ObjectNormalizer::ALLOW_EXTRA_ATTRIBUTES => false],
);
assert($result->someCamelCaseProperty === 1);