使用JMSSerializer序列化特征

6 php symfony jmsserializerbundle jms-serializer

尝试序列化使用特征的模型时,JMSSerializer不会序列化该特征包含的属性.我使用yaml来配置序列化程序,但它似乎无法正常工作.

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;
   }
}
Run Code Online (Sandbox Code Playgroud)

使用JMSSerializerBundle并且以下yaml位于 Resources/config/serializer/Model.Traits.IdentityTrait.yml

MyProject\Component\Core\Model\Traits\IdentityTrait:
    exclusion_policy: NONE
    properties:
    id:
        expose: true
Run Code Online (Sandbox Code Playgroud)

OurClass配置位于Resources/config/serializer/Model.OurClass.yml

 MyProject\Component\Core\Model\OurClass:
     exclusion_policy: NONE
     properties:
         test:
             expose: true
Run Code Online (Sandbox Code Playgroud)

一些代码被忽略以专注于该问题

ily*_*oli 1

PHP Trait 从PHP 5.4.0开始引入,最新的 JMSSerializer 代码支持PHP 5.3.2。注意"require": {"php": ">=5.3.2",查看代码,(尚)不支持此功能。这个问题与JMSSerializer github上的这个问题非常相关。