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