JMS Serializer 1. * при десериализации заполняет только те поля, которые предоставлены во входных данных.Например, у нас есть код, подобный следующему:
$criteria = $this->serializer->deserialize($request->getContent(), SearchCriteria::class, 'json');
И когда в запросе отсутствует поле limit
, оно принимает значение по умолчанию, определенное в свойстве класса, т.е.
class SearchCriteria {
// ...
private $limit = 10;
// ...
}
Thisповедение изменилось после перехода на JMS Serializer 2.0 - теперь он заменяет поле limit
на ноль, что нарушает нашу логику.Есть ли способ настроить старое поведение?Мы используем Symfony 4 с jms/serializer-bundle@3.0.0.
Здесь jms_serializer.yaml
:
jms_serializer:
default_context:
serialization:
serialize_null: false
deserialization:
serialize_null: false