完美解決phpdoc導(dǎo)出文檔中@package的warning及Error的錯(cuò)誤
來源:易賢網(wǎng) 閱讀:850 次 日期:2016-08-22 14:29:16
溫馨提示:易賢網(wǎng)小編為您整理了“完美解決phpdoc導(dǎo)出文檔中@package的warning及Error的錯(cuò)誤”,方便廣大網(wǎng)友查閱!

今天在編寫PHPDoc的導(dǎo)出文檔的時(shí)候發(fā)現(xiàn)一個(gè)很郁悶的錯(cuò)誤,雖然這個(gè)warning不是什么重要錯(cuò)誤,但是看著總是很不爽的。于是就去網(wǎng)上找了很多相關(guān)的資料,可是郁悶的是不知道是我用的PHPDoc版本太新(1.4的版本),還是說很多人都沒遇到這個(gè)問題,反正就是沒有相關(guān)的這個(gè)資料找到,只是找到了一些從PHPDocumentor官方網(wǎng)倒出來的關(guān)于@package的使用注意事項(xiàng),然后就只能一條一條檢查,看了一個(gè)版本又一個(gè)版本,總算是被我解決了。

而且發(fā)現(xiàn)該方案可以解決@package之類相關(guān)的錯(cuò)誤提示:

出現(xià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)上訴問題的主要原因是:頁面級的文檔塊注釋解析錯(cuò)誤

頁面級文檔注釋:

必須是文件中的第一個(gè)文檔塊注釋,并且有@package標(biāo)簽

該文檔快注釋之后如果是緊接著一段PHP代碼或是class類申明,必須用文檔塊注釋隔開(也就是說頁面級文檔塊注釋之后不能緊接著代碼片段)

比如情況:

<span style="color: #ff0000"><strong>案例一: </strong></span> 

<div class="codetitle"><span><a style="CURSOR: pointer" data="28036" class="copybut" id="copybut28036" onclick="doCopy('code28036')"><u>復(fù)制代碼</u></a></span> 代碼如下:</div><div class="codebody" id="code28036"> 

/** 

 * 這個(gè)是一個(gè)頁面級文檔塊注釋 

 *@package haha 

 * 

 */ 

class test { 

</div> 

以上的情況就會出現(xiàn)上述2的錯(cuò)誤信息 

解決該案例的方案是給class重新聲明一個(gè)文檔塊注釋 

<div class="codetitle"><span><a style="CURSOR: pointer" data="19750" class="copybut" id="copybut19750" onclick="doCopy('code19750')"><u>復(fù)制代碼</u></a></span> 代碼如下:</div><div class="codebody" id="code19750"> 

/** 

 * 這個(gè)是一個(gè)頁面級文檔塊注釋 

 *@package haha 

 * 

 */ 

/** 

 * 我是test類 

 */ 

class test { 

</div> 

*********************************************** 

<span style="color: #ff0000"><strong>案例二:</strong></span> 

<div class="codetitle"><span><a style="CURSOR: pointer" data="97723" class="copybut" id="copybut97723" onclick="doCopy('code97723')"><u>復(fù)制代碼</u></a></span> 代碼如下:</div><div class="codebody" id="code97723"> 

/** 

 * 這個(gè)是一個(gè)頁面級文檔塊注釋 

 */ 

/** 

 * 這個(gè)是一個(gè)頁面級文檔塊注釋 

 *@package haha 

 * 

 */ 

class test { 

</div> 

會出現(xiàn)如上問題中的1/2的情況。 

解決方案也是如案例一的解決方案一樣 

*********************************************** 

<span style="color: #ff0000"><strong>案例三: </strong></span> 

<div class="codetitle"><span><a style="CURSOR: pointer" data="37244" class="copybut" id="copybut37244" onclick="doCopy('code37244')"><u>復(fù)制代碼</u></a></span> 代碼如下:</div><div class="codebody" id="code37244"> 

/** 

 * 這個(gè)是一個(gè)頁面級文檔塊注釋 

 *@package haha 

 * 

 */ 

define('yyyy', 'hahha'); 

</div> 

就會出現(xiàn)如上所說的情況3Error。 

解決方案也是如出一則: 

<div class="codetitle"><span><a style="CURSOR: pointer" data="18682" class="copybut" id="copybut18682" onclick="doCopy('code18682')"><u>復(fù)制代碼</u></a></span> 代碼如下:</div><div class="codebody" id="code18682"> 

/** 

 * 這個(gè)是一個(gè)頁面級文檔塊注釋 

 *@package haha 

 */ 

/** 

 * 我是常量 

 */ 

define('yyyy', 'hahha'); 

</div>

如果所寫的文檔塊正確,就不會出現(xiàn)@package相關(guān)的錯(cuò)誤了。

注:

1、在注釋中需要注意,任何不是/**   */類型的注釋都不會被PHPDoc所解析。而且/**  */中的多行注釋前面不是以*開頭的注釋行也不會被解析。

2、如果聲明了標(biāo)簽卻沒有給出相關(guān)的標(biāo)簽必選項(xiàng)就會發(fā)出一個(gè)Error信息,比如@var 后面沒有變量,@return后面沒有返回類型,都將會出現(xiàn)Error錯(cuò)誤。解決方式就是補(bǔ)充完整,或是如果沒有的話就移除。

另外,提供一個(gè)命令行方式下的命令文件執(zhí)行,自動執(zhí)行Doc文檔生成:

@Rem: 命令行格式自動導(dǎo)出PHPDoc文檔 

@Rem: author: 肖肖 x_824@sina.com 

@echo off 

@echo ******************************************************************************* 

@echo 自動導(dǎo)出文檔使用說明: 

@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ò)誤就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考

更多信息請查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)