PHP5オブジェクトにカスタムアノテーションを実装したいと思っています。独自のパーサを構築することによって、プロセス全体がどのように機能するのかを知りたいと思います。PHP5オブジェクトの注釈の検索方法は?
しかし、私は注釈を見つける方法を知る必要があります。
私が紛失しているReflectionメソッドがありますか、別の方法がありますか?
例えば、私はクラスで、次の注釈を見つけることができるようにしたい:
/**
* @MyParam: myvalue
*/
PHP5オブジェクトにカスタムアノテーションを実装したいと思っています。独自のパーサを構築することによって、プロセス全体がどのように機能するのかを知りたいと思います。PHP5オブジェクトの注釈の検索方法は?
しかし、私は注釈を見つける方法を知る必要があります。
私が紛失しているReflectionメソッドがありますか、別の方法がありますか?
例えば、私はクラスで、次の注釈を見つけることができるようにしたい:
/**
* @MyParam: myvalue
*/
使用することができます。
function getClassAnnotations($class)
{
$r = new ReflectionClass($class);
$doc = $r->getDocComment();
preg_match_all('#@(.*?)\n#s', $doc, $annotations);
return $annotations[1];
}
を
ファイルに複数のコメントがある場合は、それらをすべて取得しますか? – johnnietheblack
' - > getDocComment()'は、あなたが調べているオブジェクトに関連するドキュメンテーションコメント(そのものの宣言の直前のdocblockコメント)を取得するだけです。また、オブジェクト、クラス、メソッド、関数、およびプロパティに関するドキュメンテーションコメントを得ることもできます。 – MightyE
@johnnietheblack http://php.net/manual/pl/class.reflectionmethod.phpを使用すると、指定されたメソッドについてのみコメントを取得できます。 – Slawek
あなたはgetDocCommentリフレクションオブジェクトのメソッドを使用してコメントブロックを得ることができます。
あなたが手で注釈を取得したくない場合は、あなたがこのReflectionClass::getDocComment
、例を使用して行うことができますZend Framework Reflectionまたは他の既存のソリューション
['doctrine/annotations'](https://github.com/doctrine/annotations)が最も人気があります – DanFromGermany
可能な複製http://stackoverflow.com/search?q=annotation+parser+php – Gordon
なぜdoctrineアノテーションのようなライブラリを使用しないのですか? – leyou