完美解决phpdoc导出文档中@package的warning及Error的错误

2025-05-29 0 20

今天在编写PHPDoc的导出文档的时候发现一个很郁闷的错误,虽然这个warning不是什么重要错误,但是看着总是很不爽的。于是就去网上找了很多相关的资料,可是郁闷的是不知道是我用的PHPDoc版本太新(1.4的版本),还是说很多人都没遇到这个问题,反正就是没有相关的这个资料找到,只是找到了一些从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:\\PHPAPP\\test

@set outputDir=D:\\PHPAPP\\doc

@set id=\"codetool\">

注:该命令需要安装命令行下的PHPDocumentor包,安装方式用pear安装。

谨此!

以上这篇完美解决phpdoc导出文档中@package的warning及Error的错误就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持快网idc。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 完美解决phpdoc导出文档中@package的warning及Error的错误 https://www.kuaiidc.com/98014.html

相关文章

发表评论
暂无评论