php代码注释规范

php注释有很多种方法,我们可能总是很随性,很少去思考注释的规范性,一般只是自己看得懂就行,有的甚至没有写注释。有时候可能,回头再看自己写的代码,已经不记得它是干什么用的了。又或者是,公司的开发人员离职了,新的开发人员看不懂以前的class与function的功能是什么,这时候,注释就变得相当重要,如果注释写的很规范,可以生成一份说明文档。
phpdoc注释规范可以详见https://docs.phpdoc.org。
php注释示例:
<?php
// 这是一行注释
/* 这是一行注释 */
/*
这是一行注释
*/
注意,使用//注释,后面的内容不可以换行,而/**/包含的注释,可以随意换行。
虽然上面的代码达到了注释的效果,但并不规范。
PHPDoc关于php代码编写文档的标准注释格式
<?php
/**
* 这里是注释的简要描述。
*
* 这里是注释的详细描述,可以包含更多信息和说明。
*
* @标签名称 标签值
* @标签名称 标签值
* ...
*/
注释以 /** 开始和 */ 结束,描述部分包括简要描述和详细描述。标签部分由 @ 符号开始,后面跟着标签名称和标签值。
标准注释格式示例:
<?php
/**
* Class a
* @author A Little Duck <duck@lichil.com>
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @copyright A Little Duck
*/
class a {
/**
* Class version
*
* @access public
* @var string
*/
var $version;
/**
* 裁剪图像
*
* 这些值可以在数组中,也可以在空格分隔的字符串中。
* 每个值可以是像素(带或不带“px”)或百分比(源图像)
*
* 例如,有效的参数是
* <pre>
* $a->image_crop = 20 OR array(20);
* $a->image_crop = '20px' OR array('20px');
* $a->image_crop = '20 40' OR array('20', 40);
* $a->image_crop = '-20 25%' OR array(-20, '25%');
* $a->image_crop = '20px 25%' OR array('20px', '25%');
* $a->image_crop = '20% 25%' OR array('20%', '25%');
* $a->image_crop = '20% 25% 10% 30%' OR array('20%', '25%', '10%', '30%');
* $a->image_crop = '20px 25px 2px 2px' OR array('20px', '25%px', '2px', '2px');
* $a->image_crop = '20 25% 40px 10%' OR array(20, '25%', '40px', '10%');
* </pre>
*
* 默认值为null(无裁剪)
*
* @access public
* @var string OR array;
*/
var $image_crop;
/**
* 解码颜色
*
* @access private
* @param string $color Color string
* @return array RGB colors
*/
function getcolors($color) {
//执行内容
}
}
示例代码中,关于属性(变量)$image_crop的说明非常详细到位,列举了所有可以出现的格式。
@开头的是一些常规标签,代表了不同的功能与内容。这里挑一些常用的标签作简短说明,很多都是字面上的意思,很容易理解。
@access 标签
用于指定成员(方法、属性)的访问权限,是最常用的标签之一,可选值为:
- public:表示公共访问权限,即该成员可以被任何代码访问。
- protected:表示受保护的访问权限,即该成员只能在当前类及其子类中访问。
- private:表示私有访问权限,即该成员只能在当前类中访问。
- internal:表示内部访问权限,即该成员只能在当前命名空间或包内部访问。
@var 标签
用于指定一个属性的数据类型和说明,它描述了类属性的类型以及属性的解释,是最常用的标签之一。
@var 语法:
@var ["Type"] [element_name] [<description>]
例如:上面的代码中@var string OR array;表示$image_crop的值是字符串或者数组。
@param 标签
用于描述函数或方法的参数,是最常用的标签之一。
语法:
@param [<Type>] [name] [<description>]
例如:@param string $color Color string 方法的参数为字符串类型,名称为$color,描述为“Color string”(可以把它改成中文,例如:颜色值,字符串格式)
@return 标签
用于描述函数或方法的返回值,是最常用的标签之一。
语法:
@return [Type] [<description>]
例如:@return array RGB colors 该方法返回的值为数组格式,返回的值描述为“RGB颜色值”。
常见的标签还有:
@author 用于标记作者的信息,语法:@author [name] [<email address>],示例可以见上面的代码@author A Little Duck <duck@lichil.com>。
@license 用于说明许可证适用信息,语法:@license [<url>] [name]。
@copyright 用于标记版权信息,语法:@copyright [description]。
@package 用于指定一个类、接口或者函数所属的包。这个标签通常出现在文档块注释的开头,用于向其他开发者说明这个类、接口或者函数属于哪个包,语法:@package [level 1][level 2][etc.]。
官网上还有许多标签未在此处陈列,基本上了解了上面几种就满足要求了,如果需要了解更多标签,请移步官网。
如果您在php文档中使用了标准的注释格式,可以将代码进行解析并生成文档
使用PHPDocumentor工具生成文档
如果您没有使用过phpDocumentor,可能需要先安装,然后在终端通过php-cli执行文档生成命令:
phpdoc run -d path/code -t path/output
其中,path/code 是您的代码所在的目录路径,path/output 是生成的文档输出目录路径。