关于PHPDocument 代码注释规范的总结


Posted in PHP onJune 25, 2013

1. 安装phpDocumentor(不推荐命令行安装)
在http://manual.phpdoc.org/下载最新版本的PhpDoc
放在web服务器目录下使得通过浏览器可以访问到
点击files按钮,选择要处理的php文件或文件夹
还可以通过该指定该界面下的Files to ignore来忽略对某些文件的处理。
然后点击output按钮来选择生成文档的存放路径和格式.
最后点击create,phpdocumentor就会自动开始生成文档了。

2.如何写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 用于在文档中忽略指定的关键字

一些注释规范
a.注释必须是
/**
* XXXXXXX
*/
的形式
b.对于引用了全局变量的函数,必须使用glboal标记。
c.对于变量,必须用var标记其类型(int,string,bool...)
d.函数必须通过param和return标记指明其参数和返回值
e.对于出现两次或两次以上的关键字,要通过ingore忽略掉多余的,只保留一个即可
f.调用了其他函数或类的地方,要使用link或其他标记链接到相应的部分,便于文档的阅读。
g.必要的地方使用非文档性注释(PHPDOC无法识别的关键字前的注释),提高代码易读性。
h.描述性内容尽量简明扼要,尽可能使用短语而非句子。
i.全局变量,静态变量和常量必须用相应标记说明

能够被phpdoc识别的关键字:
Include
Require
include_once
require_once
define
function
global
class

3. 规范注释的php代码 :
<?php
/**
* 文件名(sample2.php)
*
* 功能描述(略)
*
* @author steve <https://3water.com>
* @version 1.0
* @package sample2
*/
/**
* 包含文件
*/
include_once 'sample3.php';
/**
* 声明全局变量
* @global integer $GLOBALS['_myvar']
* @name $_myvar
*/
$GLOBALS['_myvar'] = 6;
/**
* 声明全局常量
*/
define('NUM', 6);
/**
* 类名
*
* 类功能描述
*
* @package sample2
* @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;
}
}
?>

PHP 相关文章推荐
php注销代码(session注销)
May 31 PHP
PHP使用CURL_MULTI实现多线程采集的例子
Jul 29 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
php查询mysql数据库并将结果保存到数组的方法
Mar 18 PHP
php实现从上传文件创建缩略图的方法
Apr 02 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
May 13 PHP
PHP针对多用户实现更换头像功能
Sep 04 PHP
php 解决扫描二维码下载跳转问题
Jan 13 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
PHP使用Redis实现防止大并发下二次写入的方法
Oct 09 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
PHP实现随机发放扑克牌
Apr 21 PHP
解析php中获取系统信息的方法
Jun 25 #PHP
解析PHP对现有搜索引擎的调用
Jun 25 #PHP
手把手教你打印出PDF(关于fpdf的简单应用)
Jun 25 #PHP
解析如何修改phpmyadmin中的默认登陆超时时间
Jun 25 #PHP
关于Sphinx创建全文检索的索引介绍
Jun 25 #PHP
使用Sphinx对索引进行搜索
Jun 25 #PHP
深入PHP许愿墙模块功能分析
Jun 25 #PHP
You might like
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
phpStudy配置多站点多域名和多端口的方法
2017/09/01 PHP
网站页面自动跳转实现方法PHP、JSP(下)
2010/08/01 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
JS简单计算器实例
2015/01/20 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
详解React 服务端渲染方案完美的解决方案
2018/12/14 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
Python中文编码那些事
2014/06/25 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
Python中装饰器学习总结
2018/02/10 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
临床医学专业学生的自我评价分享
2013/11/21 职场文书
自荐信格式简述
2014/01/25 职场文书
安全技术说明书
2014/05/09 职场文书
大学生实习证明范文(5篇)
2014/09/18 职场文书
项目负责人岗位职责
2015/02/15 职场文书
2015年教研员工作总结
2015/05/26 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
对学校的意见和建议
2015/06/04 职场文书
如何正确理解python装饰器
2021/06/15 Python