PHPDoc的导出文档的时候发现一个错误,从PHPDocumentor官方网倒出来的关于@package的使用注意事项。
该方案可以解决@package之类相关的错误提示:
出现的问题:
1、no @package tag was used in a DocBlock for XXXXXXXXXXX
2、XXXXXX has no page-level DocBlock, use @package in the first DocBlock to create one
3、ERROR: XXXX can not have @package tag。。。。(具体的提示我忘记了,大题的意思是这里的文档不能使用@package标签)
出现上诉问题的主要原因是:页面级的文档块注释解析错误
页面级文档注释:
必须是文件中的第一个文档块注释,并且有@package标签
该文档快注释之后如果是紧接着一段PHP代码或是class类申明,必须用文档块注释隔开(也就是说页面级文档块注释之后不能紧接着代码片段)
比如情况:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
<span style="color: #ff0000"><strong>案例一: </strong></span> <div class="codetitle"><span><a data="84449" class="copybut" id="copybut84449"><u>复制代码</u></a></span> 代码如下:</div><div class="codebody" id="code84449"> /** * 这个是一个页面级文档块注释 *@package haha * */ class test { } </div> 以上的情况就会出现上述2的错误信息 解决该案例的方案是给class重新声明一个文档块注释 <div class="codetitle"><span><a data="76163" class="copybut" id="copybut76163"><u>复制代码</u></a></span> 代码如下:</div><div class="codebody" id="code76163"> /** * 这个是一个页面级文档块注释 *@package haha * */ /** * 我是test类 */ class test { } </div> *********************************************** <span style="color: #ff0000"><strong>案例二:</strong></span> <div class="codetitle"><span><a data="54137" class="copybut" id="copybut54137"><u>复制代码</u></a></span> 代码如下:</div><div class="codebody" id="code54137"> /** * 这个是一个页面级文档块注释 */ /** * 这个是一个页面级文档块注释 *@package haha * */ class test { } </div> 会出现如上问题中的1/2的情况。 解决方案也是如案例一的解决方案一样 *********************************************** <span style="color: #ff0000"><strong>案例三: </strong></span> <div class="codetitle"><span><a data="93658" class="copybut" id="copybut93658"><u>复制代码</u></a></span> 代码如下:</div><div class="codebody" id="code93658"> /** * 这个是一个页面级文档块注释 *@package haha * */ define('yyyy', 'hahha'); </div> 就会出现如上所说的情况3Error。 解决方案也是如出一则: <div class="codetitle"><span><a data="75095" class="copybut" id="copybut75095"><u>复制代码</u></a></span> 代码如下:</div><div class="codebody" id="code75095"> /** * 这个是一个页面级文档块注释 *@package haha */ /** * 我是常量 */ define('yyyy', 'hahha'); </div> |
如果所写的文档块正确,就不会出现@package相关的错误了。
注:
1、在注释中需要注意,任何不是/** */类型的注释都不会被PHPDoc所解析。而且/** */中的多行注释前面不是以*开头的注释行也不会被解析。
2、如果声明了标签却没有给出相关的标签必选项就会发出一个Error信息,比如@var 后面没有变量,@return后面没有返回类型,都将会出现Error错误。解决方式就是补充完整,或是如果没有的话就移除。
另外,提供一个命令行方式下的命令文件执行,自动执行Doc文档生成:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
@Rem: 命令行格式自动导出PHPDoc文档 @Rem: author: 肖肖 x_824@sina.com @echo off @echo ******************************************************************************* @echo 自动导出文档使用说明: @echo 需要安装命令行的PHPDOCumentor,安装方式是用pear安装pear install PhpDocumentor即可 @echo 1、option:设置导出文档的格式,命令行格式支持四种格式:默认为第一种格式 @echo ###1】、HTML:frames:default@echo ###2】、HTML:Smarty:default@echo ###3】、CHM:default:default@echo ###4】、PDF:default:default@echo 2、dir:需要执行导出文档的目录、 @echo 3、outputDir: 导出的文档存放目录 @echo 4、title:导出的文档的标题 @echo ******************************************************************************* @set option=HTML:frames:default@set dir=D:PHPAPPtest @set outputDir=D:PHPAPPdoc
注:该命令需要安装命令行下的PHPDocumentor包,安装方式用pear安装。 |
联系信息:邮箱aoxolcom@163.com或见网站底部。
















请登录后发表评论
注册
社交帐号登录