假设我有一个这样的文档块:
* @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
*
如何解析文档块以在同一文件中使用这些字符串?
我的目标是每次更改文档块时,只需在整个文档中使用@version
编号,而不必添加另一个$version = 'myversion'
我知道有docblock解析器类,但我找不到如何读取自己的文件。(我自己的问题-从很久以前开始,提供了某种解决方案,但仅适用于外部文件,而且无论如何都不理想,因为它每次都需要打开和写入文件)
此外,在梨示例页面中,他们似乎以某种方式使用(据我所知)版本号作为变量-但我不明白如何。。。
示例版本I
* @version SVN: $Id$
示例版本II:
* @version CVS: <?php
$
?> Id:$
(我不知道为什么这两个示例页面不同(URL en
和zh
)——也许这只是一个小的webug。)但无论如何,我都不知道如何应用它。
重点是:我如何在文件本身中将文档块用作字符串,或者反转逻辑并在文档块中使用文档中的变量,这样我总是需要仅声明版本号(以及可能的其他变量)ONCE
。
我认为您唯一能做的就是使用解析器,或者执行搜索/替换(使用正则表达式)
另一种方法是使用Reflection来实现它:http://www.phpriot.com/articles/reflection-api在我看来,如果你有PHP5可用,这将是一条路:)