PHP5 オブジェクトにカスタム アノテーションを実装できるようにしたいと考えています。また、独自のパーサーを構築してプロセス全体がどのように機能するかを学びたいと考えています。
ただし、最初に、注釈を検索する方法を知る必要があります。
私が見逃しているリフレクションメソッドはありますか、それとも別の方法がありますか?
たとえば、クラスで次の注釈を見つけられるようにしたいと考えています。
/**
* @MyParam: myvalue
*/
PHP5 オブジェクトにカスタム アノテーションを実装できるようにしたいと考えています。また、独自のパーサーを構築してプロセス全体がどのように機能するかを学びたいと考えています。
ただし、最初に、注釈を検索する方法を知る必要があります。
私が見逃しているリフレクションメソッドはありますか、それとも別の方法がありますか?
たとえば、クラスで次の注釈を見つけられるようにしたいと考えています。
/**
* @MyParam: myvalue
*/
ReflectionClass::getDocComment
これは、例を使用して行うことができます。
function getClassAnnotations($class)
{
$r = new ReflectionClass($class);
$doc = $r->getDocComment();
preg_match_all('#@(.*?)\n#s', $doc, $annotations);
return $annotations[1];
}
getDocComment Reflection オブジェクト メソッドを使用して、コメント ブロックを取得できます。
手動で注釈を取得したくない場合は、Zend Framework Reflectionまたは他の既存のソリューションを使用できます