Подтвердить что ты не робот

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

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

Чтобы начать, я должен знать, как узнать аннотации.

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

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

/**
 * @MyParam: myvalue
 */
4b9b3361

Ответ 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 или другое существующее решение