9

PHP Docblock ( Doxygenなどのツールでドキュメントを生成するために使用される) を、PHP で検査できる構造に変換する方法を探しています。

たとえば、解析したい

/**
 * Multiply two values
 * @CHECKME
 *
 * @author someone
 * @created eons ago
 *
 * @param integer $x
 * @param integer $x
 *
 * @return integer
 */
function multiply($x, $y)
{
    return $x * $y;
}

次のようなものに:

array(
     'author'  => 'someone'
    ,'created' => 'eons ago'
    ,'param'   => array(
                      'integer $x'
                     ,'integer $y'
                  )
    ,'_flags'  => array(
                     '@CHECKME'
                  )
);

PEARやそのようなライブラリを明示的に使用することはできません。比較的スタンドアロンである必要があります。 コメントのアウトラインを取り除いた後に正規表現の束を使用するよりも優れたソリューションはどれもすばらしいものです。

4

4 に答える 4

1

phpdocumentorクラスだけを使用することはできなかったのでしょうか。彼らはすでにデータを解析しています。ファイルを処理するための独自の暫定パーサーを作成しても、生のオブジェクトを任意の方法で処理できると思います。

于 2010-06-09T22:23:05.703 に答える
1

開始点としてReflectionクラス[1]、特にそのgetDocComment()メソッド[2]を使用することを検討してください。また、それを使用することへの彼の進出についてのマシューのブログ投稿[3]は、さらなる洞察を提供するかもしれません。

[1] -http://www.php.net/manual/en/class.reflectionclass.php

[2] -http://www.php.net/manual/en/reflectionclass.getdoccomment.php

[3] -http://mwop.net/blog/125-PHP-5s-Reflection-API

于 2012-02-23T16:36:38.103 に答える
0

PHPDocパーサークラス(Documentor)を含むランタイムPHPドキュメントユーティリティを作成しました。あなたが見てみたいなら、これはあなたが望むことをするだろうと思います。改善やバグ修正があれば、githubでも利用できます。

于 2012-02-23T13:03:31.287 に答える
0

PHPDocumentorは、スタンドアロンのdocblockパーサーです。

于 2010-06-09T22:29:45.580 に答える