25

PHP5 オブジェクトにカスタム アノテーションを実装できるようにしたいと考えています。また、独自のパーサーを構築してプロセス全体がどのように機能するかを学びたいと考えています。

ただし、最初に、注釈を検索する方法を知る必要があります。

私が見逃しているリフレクションメソッドはありますか、それとも別の方法がありますか?

たとえば、クラスで次の注釈を見つけられるようにしたいと考えています。

/**
 * @MyParam: myvalue
 */
4

2 に答える 2

52

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

于 2012-03-16T18:29:23.900 に答える
10

getDocComment Reflection オブジェクト メソッドを使用して、コメント ブロックを取得できます。

手動で注釈を取得したくない場合は、Zend Framework Reflectionまたは他の既存のソリューションを使用できます

于 2012-03-16T18:26:44.963 に答える