完美解決phpdoc導(dǎo)出文檔中@package的warning及Error的錯(cuò)誤
今天在編寫(xiě)PHPDoc的導(dǎo)出文檔的時(shí)候發(fā)現(xiàn)一個(gè)很郁悶的錯(cuò)誤,雖然這個(gè)warning不是什么重要錯(cuò)誤,但是看著總是很不爽的。于是就去網(wǎng)上找了很多相關(guān)的資料,可是郁悶的是不知道是我用的PHPDoc版本太新(1.4的版本),還是說(shuō)很多人都沒(méi)遇到這個(gè)問(wèn)題,反正就是沒(méi)有相關(guān)的這個(gè)資料找到,只是找到了一些從PHPDocumentor官方網(wǎng)倒出來(lái)的關(guān)于@package的使用注意事項(xiàng),然后就只能一條一條檢查,看了一個(gè)版本又一個(gè)版本,總算是被我解決了。
而且發(fā)現(xiàn)該方案可以解決@package之類相關(guān)的錯(cuò)誤提示:
出現(xiàn)的問(wèn)題:
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標(biāo)簽)
出現(xiàn)上訴問(wèn)題的主要原因是:頁(yè)面級(jí)的文檔塊注釋解析錯(cuò)誤
頁(yè)面級(jí)文檔注釋:
必須是文件中的第一個(gè)文檔塊注釋,并且有@package標(biāo)簽
該文檔快注釋之后如果是緊接著一段PHP代碼或是class類申明,必須用文檔塊注釋隔開(kāi)(也就是說(shuō)頁(yè)面級(jí)文檔塊注釋之后不能緊接著代碼片段)
比如情況:
案例一:復(fù)制代碼 代碼如下:/** * 這個(gè)是一個(gè)頁(yè)面級(jí)文檔塊注釋 *@package haha * */ class test { }以上的情況就會(huì)出現(xiàn)上述2的錯(cuò)誤信息 解決該案例的方案是給class重新聲明一個(gè)文檔塊注釋復(fù)制代碼 代碼如下:/** * 這個(gè)是一個(gè)頁(yè)面級(jí)文檔塊注釋 *@package haha * */ /** * 我是test類 */ class test { }*********************************************** 案例二:復(fù)制代碼 代碼如下:/** * 這個(gè)是一個(gè)頁(yè)面級(jí)文檔塊注釋 */ /** * 這個(gè)是一個(gè)頁(yè)面級(jí)文檔塊注釋 *@package haha * */ class test { }會(huì)出現(xiàn)如上問(wèn)題中的1/2的情況。 解決方案也是如案例一的解決方案一樣 *********************************************** 案例三:復(fù)制代碼 代碼如下:/** * 這個(gè)是一個(gè)頁(yè)面級(jí)文檔塊注釋 *@package haha * */ define('yyyy', 'hahha');就會(huì)出現(xiàn)如上所說(shuō)的情況3Error。 解決方案也是如出一則:復(fù)制代碼 代碼如下:/** * 這個(gè)是一個(gè)頁(yè)面級(jí)文檔塊注釋 *@package haha */ /** * 我是常量 */ define('yyyy', 'hahha');
如果所寫(xiě)的文檔塊正確,就不會(huì)出現(xiàn)@package相關(guān)的錯(cuò)誤了。
注:
1、在注釋中需要注意,任何不是/** */類型的注釋都不會(huì)被PHPDoc所解析。而且/** */中的多行注釋前面不是以*開(kāi)頭的注釋行也不會(huì)被解析。
2、如果聲明了標(biāo)簽卻沒(méi)有給出相關(guān)的標(biāo)簽必選項(xiàng)就會(huì)發(fā)出一個(gè)Error信息,比如@var 后面沒(méi)有變量,@return后面沒(méi)有返回類型,都將會(huì)出現(xiàn)Error錯(cuò)誤。解決方式就是補(bǔ)充完整,或是如果沒(méi)有的話就移除。
另外,提供一個(gè)命令行方式下的命令文件執(zhí)行,自動(dòng)執(zhí)行Doc文檔生成:
@Rem: 命令行格式自動(dòng)導(dǎo)出PHPDoc文檔 @Rem: author: 肖肖 x_824@sina.com @echo off @echo ******************************************************************************* @echo 自動(dòng)導(dǎo)出文檔使用說(shuō)明: @echo 需要安裝命令行的PHPDOCumentor,安裝方式是用pear安裝pear install PhpDocumentor即可 @echo 1、option:設(shè)置導(dǎo)出文檔的格式,命令行格式支持四種格式:默認(rèn)為第一種格式 @echo ###1】、HTML:frames:default @echo ###2】、HTML:Smarty:default @echo ###3】、CHM:default:default @echo ###4】、PDF:default:default @echo 2、dir:需要執(zhí)行導(dǎo)出文檔的目錄、 @echo 3、outputDir: 導(dǎo)出的文檔存放目錄 @echo 4、title:導(dǎo)出的文檔的標(biāo)題 @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 歡迎使用!導(dǎo)出成功 @pause
注:該命令需要安裝命令行下的PHPDocumentor包,安裝方式用pear安裝。
謹(jǐn)此!
以上這篇完美解決phpdoc導(dǎo)出文檔中@package的warning及Error的錯(cuò)誤就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
探討:php中在foreach中使用foreach ($arr as &$value) 這種類型的解釋
本篇文章是對(duì)php中在foreach中使用foreach ($arr as &$value) 這種類型的解釋進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
Javascript與PHP驗(yàn)證用戶輸入U(xiǎn)RL地址是否正確
這篇文章主要介紹了Javascript與PHP驗(yàn)證用戶輸入U(xiǎn)RL地址是否正確,在進(jìn)行web應(yīng)用程序開(kāi)發(fā)時(shí)非常實(shí)用,需要的朋友可以參考下2014-10-10
php采用curl訪問(wèn)域名返回405 method not allowed提示的解決方法
這篇文章主要介紹了php采用curl訪問(wèn)域名返回405 method not allowed提示的解決方法,需要的朋友可以參考下2014-06-06
php include和require的區(qū)別深入解析
本篇文章是對(duì)php中include與require的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
簡(jiǎn)單的pgsql pdo php操作類實(shí)現(xiàn)代碼
這篇文章主要介紹了簡(jiǎn)單的pgsql pdo php操作類,需要的朋友可以參考下2016-08-08
Thinkphp實(shí)現(xiàn)自動(dòng)驗(yàn)證和自動(dòng)完成
這篇文章主要介紹了Thinkphp實(shí)現(xiàn)自動(dòng)驗(yàn)證和自動(dòng)完成的相關(guān)資料,需要的朋友可以參考下2015-12-12

