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;
}
所以「神奇」的部分是,我需要一些幫助。