今天在编写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类申明,必须用文档块注释隔开(也就是说页面级文档块注释之后不能紧接着代码片段)

比如情况:

案例一:  
复制代码 代码如下: 
/** 
 * 这个是一个页面级文档块注释 
 *@package haha 
 * 
 */ 
class test { 
 
} 
 
以上的情况就会出现上述2的错误信息 
解决该案例的方案是给class重新声明一个文档块注释 
复制代码 代码如下: 
/** 
 * 这个是一个页面级文档块注释 
 *@package haha 
 * 
 */ 
/** 
 * 我是test类 
 */ 
class test { 
 
} 
 
*********************************************** 
 
案例二: 
复制代码 代码如下: 
/** 
 * 这个是一个页面级文档块注释 
 */ 
 
/** 
 * 这个是一个页面级文档块注释 
 *@package haha 
 * 
 */ 
class test { 
 
} 
 
会出现如上问题中的1/2的情况。 
解决方案也是如案例一的解决方案一样 
 
*********************************************** 
案例三:  
复制代码 代码如下: 
/** 
 * 这个是一个页面级文档块注释 
 *@package haha 
 * 
 */ 
define('yyyy', 'hahha'); 
 
就会出现如上所说的情况3Error。 
解决方案也是如出一则: 
复制代码 代码如下: 
/** 
 * 这个是一个页面级文档块注释 
 *@package haha 
 */ 
/** 
 * 我是常量 
 */ 
define('yyyy', 'hahha'); 
 

如果所写的文档块正确,就不会出现@package相关的错误了。

注:

1、在注释中需要注意,任何不是/**   */类型的注释都不会被PHPDoc所解析。而且/**  */中的多行注释前面不是以*开头的注释行也不会被解析。

2、如果声明了标签却没有给出相关的标签必选项就会发出一个Error信息,比如@var 后面没有变量,@return后面没有返回类型,都将会出现Error错误。解决方式就是补充完整,或是如果没有的话就移除。

另外,提供一个命令行方式下的命令文件执行,自动执行Doc文档生成:

@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 title=PHPWindDoc 
 
@phpdoc -d %dir% -o %option% -ti %title% -t %outputDir% 
@echo 欢迎使用!导出成功 
@pause 

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

谨此!

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

华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。