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


Posted in PHP onMay 17, 2016

今天在编写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的错误就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
亲密接触PHP之PHP语法学习笔记1
Dec 17 PHP
用php获取远程图片并把它保存到本地的代码
Apr 07 PHP
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
Nov 01 PHP
Zend的MVC机制使用分析(一)
May 02 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 PHP
phalcon框架使用指南
Feb 23 PHP
PHP重定向与伪静态区别
Feb 19 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 09 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
May 29 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
May 17 #PHP
简单理解PHP的面向对象编程方式
May 17 #PHP
WordPress中的shortcode短代码功能使用详解
May 17 #PHP
CodeIgniter生成静态页的方法
May 17 #PHP
CodeIgniter连贯操作的底层原理分析
May 17 #PHP
CI框架常用方法小结
May 17 #PHP
CodeIgniter记录错误日志的方法全面总结
May 17 #PHP
You might like
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
JS文本框追加多个下拉框的值的简单实例
2013/07/12 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
学习python类方法与对象方法
2016/03/15 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
基于Django的ModelForm组件(详解)
2017/12/07 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
深入理解Tensorflow中的masking和padding
2020/02/24 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
HTML5的革新 结构之美
2011/06/20 HTML / CSS
指针和引用有什么区别
2013/01/13 面试题
交通法规咨询中心工作职责
2013/11/27 职场文书
四群教育工作实施方案
2014/03/26 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
中标通知书
2015/04/17 职场文书
办公室卫生管理制度
2015/08/04 职场文书
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技
Python中的 No Module named ***问题及解决
2022/07/23 Python