Intereting Posts

Как найти аннотации в объекте PHP5?

Я хотел бы иметь возможность реализовать пользовательские аннотации в моих объектах PHP5, и я хотел бы узнать, как работает весь процесс, создавая собственный парсер.

Для начала, однако, мне нужно знать, как узнать аннотации.

Есть ли метод Reflection, который я пропускаю, или есть другой способ?

Например, я хотел бы иметь возможность найти следующую аннотацию в классе:

/** * @MyParam: myvalue */ 

Вы можете сделать это, используя ReflectionClass::getDocComment , например:

 function getClassAnnotations($class) { $r = new ReflectionClass($class); $doc = $r->getDocComment(); preg_match_all('#@(.*?)\n#s', $doc, $annotations); return $annotations[1]; } 

Демо-версия: http://codepad.viper-7.com/u8bFT4

Вы можете получить блок комментариев, используя метод объекта refDocComment Reflection.

Если вы не хотите получать аннотацию вручную, вы можете использовать Zend Framework Reflection или другое существующее решение