05月 17

一、如何写PHP规范注释

所有的文档标记都是在每一行的 * 后面以@开头。
如果在一段话的中间出来@的标记,这个标记将会被当做普通内容而被忽略掉。

@access
//该标记用于指明关键字的存取权限:private、public或proteced 使用范围:class,function,var,define,module

@author
//指明作者

@copyright
//指明版权信息

@const
//使用范围:define 用来指明php中define的常量

@final
//使用范围:class,function,var 指明关键字是一个最终的类、方法、属性,禁止派生、修改。

@global
//指明在此函数中引用的全局变量

@name
//为关键字指定一个别名。

@package
//用于逻辑上将一个或几个关键字分到一组。

@abstrcut
//说明当前类是一个抽象类

@param
//指明一个函数的参数

@return
//指明一个方法或函数的返回值

@static
//指明关建字是静态的。

@var
//指明变量类型

@version
//指明版本信息

@todo
//指明应该改进或没有实现的地方

@link
//可以通过link指到文档中的任何一个关键字

@ingore
//用于在文档中忽略指定的关键字

二、一些注释规范
1、注释必须是下面形式

/**
* XXXXXXX
*/

2、对于引用了全局变量的函数,必须使用glboal标记。
3、对于变量,必须用var标记其类型(int,string,bool…)
4、函数必须通过param和return标记指明其参数和返回值
5、对于出现两次或两次以上的关键字,要通过ingore忽略掉多余的,只保留一个即可
6、调用了其他函数或类的地方,要使用link或其他标记链接到相应的部分,便于文档的阅读。
7、必要的地方使用非文档性注释(PHPDOC无法识别的关键字前的注释),提高代码易读性。
8、描述性内容尽量简明扼要,尽可能使用短语而非句子。
9、全局变量,静态变量和常量必须用相应标记说明

三、能够被phpdoc识别的关键字:

include
require
include_once
require_once
define
function
global
class

四、 规范注释的php代码实例 :

/**
* 文件名(sample.php)
*
* 功能描述(略)
*
* @author jgcao 
* @version 1.0
* @package sample
*/

/**
* 包含文件
*/
include_once 'common.php';

/**
* 声明全局变量
* @global integer $GLOBALS['myvar']
* @name $myvar
*/
$GLOBALS['myvar'] = 6;

/**
* 声明全局常量
*/
define('NUM', 6);

/**
* 类名
*
* 类功能描述
*
* @package sample
* @subpackage classes(如果是父类 就添加)
*/
class myclass {

	/**
	* 声明普通变量
	*
	* @accessprivate
	* @var integer|string
	*/
	var $firstvar = 6;

	/**
	* 创建构造函数 {@link $firstvar}
	*/
	function myclass() {
		$this->firstvar = 7;
	}

	/**
	* 定义函数
	*
	* 函数功能描述
	*
	* @global string $_myvar
	* @staticvar integer $staticvar
	* @param string $param1
	* @param string $param2
	* @return integer|string
	*/
	function firstFunc($param1, $param2 = 'optional') {
		static $staticvar = 7;
		global $_myvar;
		return $staticvar;
	}
}