1
我有一个模型,它使用JMS序列化器对其属性进行注释。 在另一个使用此对象的类中,我想访问注释中的信息。 例子:访问由注释定义的对象属性的序列化名称
class ExampleObject
{
/**
* @var int The status code of a report
*
* @JMS\Expose
* @JMS\Type("integer")
* @JMS\SerializedName("StatusCode")
* @Accessor(getter="getStatusCode")
*/
public $statusCode;
}
正如你所看到的属性是首字母大写的风格,这是确定我们的编码标准命名。但为了将此对象中的信息传递给外部服务,我需要SerializedName。
所以我的想法是在这个类中编写一个方法,该方法为每个属性提供了从注释返回的SerializedName。是否可以通过方法访问注释中的信息?如果是的话如何?
我的想法是这样的:
public function getSerializerName($propertyName)
{
$this->$propertyName;
// Do some magic here with the annotation info
return $serializedName;
}
所以“神奇”的部分是,我需要一些帮助。