Как найти аннотации в объекте PHP5?
Я хотел бы иметь возможность реализовать пользовательские аннотации в моих объектах PHP5, и я хотел бы узнать, как работает весь процесс, создавая собственный парсер.
Чтобы начать, я должен знать, как узнать аннотации.
Есть ли метод Reflection, который отсутствует, или есть другой способ?
Например, я хотел бы иметь возможность найти следующую аннотацию в классе:
/**
* @MyParam: myvalue
*/
Ответы
Ответ 1
Вы можете сделать это, используя ReflectionClass::getDocComment
, например:
function getClassAnnotations($class)
{
$r = new ReflectionClass($class);
$doc = $r->getDocComment();
preg_match_all('#@(.*?)\n#s', $doc, $annotations);
return $annotations[1];
}
Live demo: http://codepad.viper-7.com/u8bFT4
Ответ 2
Вы можете получить блок комментариев, используя getDocComment Метод объекта отражения.
Если вы не хотите получать аннотацию вручную, вы можете использовать Отражение Zend Framework или другое существующее решение