Как принудить JMSSerializer работать с геттерами (методами) класса

Сериализация в JMSSerializerBundle по умолчанию работает через PHP рефлексии классов, и в таком случаи не вызываются геттеры сериализуемого класса. Для того, чтобы принудить JMSSerializer работать с геттерами конкретного класса, достаточно добавить аннотацию @AccessType «в заголовке» класса. Например:

<?php
use JMS\Serializer\Annotation\AccessType;

/** @AccessType("public_method") */
class User
{
    private $name;

    public function getName()
    {
        return $this->name;
    }

    public function setName($name)
    {
        $this->name = trim($name);
    }
}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *