У меня есть модель, которая использует сериализатор JMS для аннотаций своих свойств. В другом классе, где я использую этот объект, я хотел бы получить доступ к информации в аннотациях. Пример:
class ExampleObject
{
/**
* @var int The status code of a report
*
* @JMS\Expose
* @JMS\Type("integer")
* @JMS\SerializedName("StatusCode")
* @Accessor(getter="getStatusCode")
*/
public $statusCode;
}
Как видите, свойство названо в стиле CamelCase, что соответствует нашим стандартам кодирования. Но для передачи информации в этом объекте внешней службе мне нужно SerializedName.
Итак, моя идея состоит в том, чтобы написать метод в этом классе, который дает мне для каждого свойства SerializedName из аннотации. Можно ли получить доступ к информации в аннотации через метод? Если да, то как?
Моя идея примерно такая:
public function getSerializerName($propertyName)
{
$this->$propertyName;
// Do some magic here with the annotation info
return $serializedName;
}
Так что в "волшебной" части мне нужна помощь.