2014-11-14 5 views
4

При попытке сериализации модели, использующей черты, JMSSerializer не сериализует свойства, включенные в эту черту. Я использую yaml для настройки сериализатора, но кажется, что он не работает.Сериализуемые черты с JMSSerializer

trait IdentityTrait 
{ 

    protected $id; 

    public function setId($id) 
    { 
     $this->id = $id; 

     return $this; 
    } 

    public function getId() 
    { 
     return $this->id; 
    } 
} 

class OurClass { 
    use IdentityTrait; 

    protected $test; 

    public function getTest() { 
     $this->test; 
    } 
} 

JMSSerializerBundle используется и следующий YAML расположен в Resources/config/serializer/Model.Traits.IdentityTrait.yml

MyProject\Component\Core\Model\Traits\IdentityTrait: 
    exclusion_policy: NONE 
    properties: 
    id: 
     expose: true 

И конфигурация OurClass находится в Resources/config/serializer/Model.OurClass.yml

MyProject\Component\Core\Model\OurClass: 
    exclusion_policy: NONE 
    properties: 
     test: 
      expose: true 

Некоторый код был проигнорирован, чтобы сосредоточиться на проблеме

+1

Есть ли какие-либо обновления по этому вопросу? У меня есть сущность с различными чертами, некоторые из них сериализованы, а некоторые нет ... – stevenll

ответ

1

PHP-черты введены с PHP 5.4.0, последний код JMSSerializer поддерживает PHP 5.3.2. Примечание "require": {"php": ">=5.3.2", Оглядываясь на код, эта функция не поддерживается (пока). Эта проблема очень связана с this issue на JMSSerializer github.

Смежные вопросы