1

次のようなdocblockがあると仮定します:

 * @since       0.0.1  
 * @subpackage  my-package
 * @todo        too much
 * @var        int $myvar
 * @version    0.0.99

また :

 * Name: my app name
 * URI: http://www.someurl.com
 * Description: A Simple description.
 * Version: 0.0.99
 * Author: Obmerk99
 * Author URI: http://www.someuri.com
 * Text Domain: for get_text
 * Domain Path: /lang
 *

同じファイルでこれらの文字列を使用するために docblock を解析するにはどうすればよいですか?

私の目標は、@versionドキュメントを変更するたびにドキュメント全体でドキュメントブロックの番号を単純に使用することです。別の番号を追加する必要はありません。$version = 'myversion'

docblock パーサー クラスがあることは知っていますが、独自のファイルを読み取る方法が見つかりませんでした。(私自身の質問- 昔から、ある程度の解決策を提供していますが、外部ファイルに対してのみ提供しており、いずれにせよ、毎回ファイルを開いて書き込む必要があるため、理想的ではありません)

また、pear のサンプル ページでは、バージョン番号を (私の理解する限り) 変数として使用しているように見えますが、どうすればよいのかわかりません...

バージョン I

* @version    SVN: $Id$

バージョン II :

* @version    CVS: <?php
$
?> Id:$

(2 つのサンプル ページ (URLenzh) が異なる理由はわかりません。これは単なる小さな Web バグかもしれません。) しかし、いずれにせよ、それを適用する方法がわかりません。

ポイントはこれです: docblock をファイル自体の文字列として使用するにはどうすればよいですか? あるいは、ロジックを逆にしてドキュメントの変数を docblock で使用するので、常にバージョン番号 (および場合によっては他の変数) のみを宣言する必要がありONCEます。

4

1 に答える 1

0

あなたができる唯一のことは、パーサーを使用するか、検索/置換を実行することだと思います(正規表現を使用)

もう1つの方法は、リフレクションで実装することです: http://www.phpriot.com/articles/reflection-api PHP5が利用可能であれば、それが進むべき道だと私には思えます:)

于 2013-12-18T07:40:29.313 に答える