关于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小偷相关截取函数备忘
Nov 28 PHP
flash用php连接数据库的代码
Apr 21 PHP
浅析PHP递归函数返回值使用方法
Feb 18 PHP
解析php通过cookies获取远程网页的指定代码
Jun 25 PHP
php表单请求获得数据求和示例
May 15 PHP
PHP文件缓存类示例分享
Jan 30 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
Feb 16 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
Nov 20 PHP
ZendFramework2连接数据库操作实例
Apr 18 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
Sep 02 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
PHP时间戳与日期之间转换的实例介绍
2013/04/19 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
2013/01/06 Javascript
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
详解AngularJS 过滤器的使用
2018/06/02 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
2018/10/31 Python
python中metaclass原理与用法详解
2019/06/25 Python
日本最大的旅游网站:Rakuten Travel(乐天旅游)
2018/08/02 全球购物
有abstract方法的类一定要用abstract修饰吗
2016/03/14 面试题
土木工程毕业生自荐信
2013/11/12 职场文书
毕业生个人求职信范例分享
2013/12/17 职场文书
三年大学生活自我鉴定
2014/01/21 职场文书
创业计划书如何编写
2014/02/06 职场文书
对照检查剖析材料
2014/09/30 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
投资申请报告
2015/05/19 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
MySQL中使用or、in与union all在查询命令下的效率对比
2021/05/26 MySQL
spring boot中nativeQuery的用法
2021/07/26 Java/Android
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
Netty客户端接入流程NioSocketChannel创建解析
2022/03/25 Java/Android