php 注釋規(guī)范
用過IDE或看過其他源碼的小伙伴們應(yīng)該都見過類似下面這樣的注釋
/** * 遞歸獲取所有游戲分類 * @param int $id * @return array */
看得多了就大概知道了一些規(guī)律。為了使自己的代碼更加規(guī)zhuang范bi,也開始有樣學(xué)樣地寫著這些注釋
其實這種注釋格式是有自己的名字的,它就叫——
PHPDOC
PHPDoc 是一個 PHP 版的 Javadoc。它是一種注釋 PHP 代碼的正式標(biāo)準(zhǔn)。它支持通過類似 phpDocumentor 這樣的外部文檔生成器生成 API 文檔,也可以幫助一些例如 Zend Studio, NetBeans, ActiveState Komodo Edit and IDE 和 Aptana Studio 之類的 集成開發(fā)環(huán)境 理解變量類型和弱類型語言中的其他歧義并提供改進(jìn)的代碼完成,類型提示和除錯功能。
PHPDoc 可同時支持 面向?qū)ο?的和 面向過程的 代碼。
以上摘自維基百科
簡單來說PHPDOC可以用來自動生成API文檔。主流的IDE都會識別它,并在你coding中給予你相應(yīng)的智能提示。使用PHPDOC有以下好處
-
讓你的代碼更加規(guī)zhuang范bi,更易于理解
-
讓你的IDE更懂你的代碼,更加智能的提示和自動完成
-
如需API手冊,可使用phpDocumentor來自動生成
還等什么?快跟我一起來學(xué)習(xí)又好用又有逼格的phpDoc吧!
有關(guān)phpDoc的完整文檔位于phpDocumentor官網(wǎng)。以下內(nèi)容由我個人理解、提煉而來,而且我也還在學(xué)習(xí)中,如有失誤還請各位多多指教
@api
表示這是一個提供給第三方使用的API接口
@author
作者
格式@author [名稱] [<郵箱>]
例如@author mokeyjay <i@mokeyjay.com>
@copyright
版權(quán)聲明。例如很多網(wǎng)站底部都有
格式@copyright [描述]
例如@copyright 1949-2016 China
@deprecated
不建議使用的、已過期的、將被刪除的
格式@deprecated [<版本號>] [<描述>]
例如@deprecated 1.0.0 新版本將不再包含此函數(shù)
如果它是被其他方法所取代了,建議添加@see標(biāo)記
@example
例子、示例、用例。也可表示方法返回值的例子
格式@example [位置] [<起始行號> [<行數(shù)>] ] [<描述>]
例如@example demo.php 10 3 使用示例
@filesource
沒看懂,如果你們看懂了請告訴我。傳送門
@global
全局變量
格式@global [類型][名稱] @global [類型][描述]
我懷疑這里是源文檔打錯了,大概應(yīng)該是
格式@global [類型][名稱][描述]
類型@global string name 用戶名
@ignore
忽略
格式@ignore [<描述>]
例如你在if和else的語句塊中定義分別同一個變量但值不同時,可以通過此標(biāo)記讓phpDocumentor忽略其中一個,以免生成重復(fù)的文檔。例如
if ($ostest) { /** * This define will either be 'Unix' or 'Windows' */ define("OS","Unix"); } else { /** * @ignore */ define("OS","Windows"); }
@internal
僅限內(nèi)部使用的
格式@internal [描述]
例如@internal 僅限內(nèi)部測試使用
@license
協(xié)議,很常見的啦
格式@license [<url>] [名稱]
例如@license GPL
@link
鏈接,可用于輔助說明、引用文檔等
格式@link [url] [<描述>]
例如@link http://g.cn 不懂滾去問谷歌,別來煩我
@method
方法。這是用在類注釋里的標(biāo)記。特別適合一些動態(tài)加載的類,IDE無法自動提示出來,這時就可以通過寫@method標(biāo)記來告訴IDE我這類里有哪些方法
格式@method [返回值類型] [名稱]([[類型] [參數(shù)]<, ...>]) [<描述>]
例如@method string google(string $question) 向谷歌提問,返回答案內(nèi)容
@package
包。但php沒有包,所以就用來表示命名空間
例如@package yii\base\db
@param
參數(shù),用于函數(shù)和方法注釋里的標(biāo)記
格式@param [Type] [name] [<description>]
例如@param string title 文章標(biāo)題
@property
類屬性,與@method類似,可以告訴IDE我這類里有哪些屬性
格式@property [Type] [name] [<description>]
例如@property int id 用戶id
@property-read
只讀的屬性。例如__get魔術(shù)方法能夠取到的屬性
格式@property-read [Type] [name] [<description>]
例如@property-read int id 用戶id
@property-write
只可寫的屬性。例如__set魔術(shù)方法能夠設(shè)置的屬性
格式@property-write [Type] [name] [<description>]
例如@property-write string name 用戶名
@return
返回值
格式@return [類型] [<描述>]]
例如@return array 結(jié)果數(shù)組
@see
參考,類似@link,可與@deprecated聯(lián)動
格式@see [url或完整方法名] [<描述>]
例如@see \yii\base\db::tableName() 舊方法table_name已棄用,請使用此方法替代
@since
從xx版本開始。例如從1.0之后添加了xx功能、刪除了xx參數(shù)等
格式@since [1.0.0] [<描述>]
例如@since 1.0.2 添加了$b參數(shù)
@source
沒看懂,如果你們看懂了請告訴我。傳送門
@throws
可能會拋出的錯誤類型
格式@throws [類型] [<描述>]
例如@throws LifeException 沒錢了,好想死啊
@todo
待辦。提示自己或他人還需要做些什么
格式@todo [描述]
例如@todo 這個類還沒做異常處理
@uses
使用
格式@uses [完整方法名] [<描述>]
例如@uses \yii\base\db::$count 使用此屬性計數(shù)
@var
變量
格式@var [類型] [變量名] [<描述>]
例如@var int id 用戶id
@version
版本號
格式@version [<載體>] [<描述>]
例如@version 1.0.1 2016-07-03更新
或者@version GIT:1f3197d01 來自GIT分支1f3197d01
相關(guān)文章
獻(xiàn)給php初學(xué)者(入門學(xué)習(xí)經(jīng)驗談)
下面的說明說的非常的不錯,很適合剛開始要學(xué)習(xí)php的朋友的,當(dāng)然其它語言也類似。2010-10-10