phpDocumentor学习使用记录
一.phpDocumentor简介
PHPDocumentor是一个用PHP写的工具,对于有规范注释的php程序,它能够快速生成具有相互参照,索引等功能的API文档。老的版本是phpdoc,从1.3.0开始,更名为phpDocumentor,新的版本加上了对php5语法的支持,同时,可以通过在客户端浏览器上操作生成文档,文档可以转换为PDF,HTML,CHM几种形式,非常的方便。
phpDocumentor是一个非常强大的文档自动生成工具,利用它可以帮助我们编写规范的注释,生成易于理解,结构清晰的文档,对我们的代码升级,维护,移交等都有非常大的帮助。
二.那些元素可以生成文档
Function 函数
Constant 常量
Class 类
Interface 接口
Trait 特性
Class constant 类常量
Property 属性
Method 方法
File 文件
include/require声明 包含文件声明
Variable 变量
三.基本格式
1.Summary 总结
2.Description 详细描述
3.Tags and annotations 标签和注释
Example:
/**
* 函数add,实现两个数的加法
*
* 一个简单的加法计算,函数接受两个数a、b,返回他们的和c
*
* @param int 加数
* @param int 被加数
* @return integer 返回值
*
*/
function Add($a, $b)
{
return $a+$b;
}
?>
用命令 phpdoc -d 项目绝对路径 -t 生成的文档存放的路径 生成文档
如下:
Add
integer Add( int $a, int $b)
[line 45]
函数add,实现两个数的加法
Constants 一个简单的加法计算,函数接受两个数a、b,返回他们的和c
Parameters
・ int $a - 加数
・ int $b - 被加数
四.标签详细list
Tag | Element | Description |
api | Method | 用来声明一个结构元素是否可被用作第三方API |
author | Any | 创建者信息 |
category | File、class | 文件或者类所属的目录 |
copyright | Any | 版权信息 |
deprecated | Any | 此tag将在将来的版本中被弃用 |
example | Any | 这个tag指明示例代码的路径 |
filesource | File | 源文件输出 |
global | Variable | 全局变量 |
ignore | Any | 这个标签不会包括在文档中 |
internal | Any | 这个标签仅在应用程序和内部库使用 |
license | File, Class | 文件和类的许可证信息 |
link | Any | 指明元素和网站的链接关系 |
method | Class | 指明类可用的魔术方法 |
package | File, Class | 文件和类所属的包信息 |
param | Method,Function | 方法和函数的参数信息 |
property | Class | 类的属性信息 |
property-read | Class | 类的只读属性信息 |
property-write | Class | 类的只写属性信息 |
return | Method,Function | 方法和函数的返回值 |
see | Any | 指明参考引用出处 |
since | Any | 元素从那个版本起用 |
source | Any, except File | 显示元素的源代码 |
subpackage | File, Class | 指明类和文件的子包 |
throws | Method,Function | 指明元素可能抛出的异常 |
todo | Any | 指明这个元素正在开发中 |
uses | Any | 指明元素引用的其他元素 |
var | Properties | 指明类的属性 |
version | Any | 指明当前元素的版本 |
五.类型
目前phpDocumentor中元素的各种标签需要和支持的各种类型。
1. 完整类名或者别名
使用它的完全限定类名(FQCN),这意味着类有一个前缀斜线,以表明它是类,如全名 \phpDocumentor\Descriptor\ClassDescriptor。
使用相对类名,例如 \Descriptor\ClassDescriptor。
用类的别名,例如 use phpDocumentorDescriptorParamDescriptor as Param
2. Php关键字
string
int or integer
float
bool or boolean
array
resource
null
callable
3. Phpdoc标准的关键字
mixed
void
object
false or true
self
static
$this
4. 联合类型
/** @return string|null */
六.运行phpDocumentor
Phpdoc
phpdoc run
phpdoc project:run
上面三个可以实现相同效果。
参数:
-d 项目源文件路径
-f 制定项目某一个文件
-t 生成文档的目录
phpdoc -d path/to/my/project -f path/to/an/additional/file -t path/to/my/output/folder
七.标签格式
1.@api
格式:@api
例如:
/**
*
* @api
*
*/
2. @author
格式:@author [name] []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @author My Name
Salin selepas log masuk
* @author My Name <my.name@example.com>
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
3. @category
格式:@category [description]
Salin selepas log masuk
例如:
Salin selepas log masuk
Salin selepas log masuk
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @category MyCategory
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
4. @copyright
格式:@copyright [description]
Salin selepas log masuk
例如:
Salin selepas log masuk
Salin selepas log masuk
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @copyright 1997-2005 The PHP Group
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
5. @deprecated
格式:@deprecated [] []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @deprecated
Salin selepas log masuk
* @deprecated 1.0.0
Salin selepas log masuk
* @deprecated No longer used by internal code and not recommended.
Salin selepas log masuk
* @deprecated 1.0.0 No longer used by internal code and not recommended.
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
6. @example
格式:@example [location] [ [] ] []
例如:
/**
Salin selepas log masuk
* @example example1.php Counting in action.
Salin selepas log masuk
* @example http://example.com/example2.phps Counting in action by a 3rd party.
Salin selepas log masuk
* @example "My Own Example.php" My counting.
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
7. @filesource
格式:@filesource
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @filesource
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
8. @global
格式:@global [Type] [name] @global [Type] [description]
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @global string $user
Salin selepas log masuk
* @global string username
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
9. @ignore
格式:@ignore []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
* @ignore
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
10. @internal
格式:@internal [description]
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @internal
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
11. @license
格式:@license [] [name]
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
* @license GPL
Salin selepas log masuk
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
Salin selepas log masuk
*/
Salin selepas log masuk
12.@link
格式:@link [URI] []
{@link [URI] []}
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @link http://example.com/my/bar Documentation of Foo.
Salin selepas log masuk
* When no more Foo ({@link http://example.com/my/bar}) are given
Salin selepas log masuk
* this function will add one as there must always be one Foo.
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
13. @method
格式:@method [return type] [name]([[type] [parameter]<, ...>]) []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @method string getString()
Salin selepas log masuk
* @method void setInteger(integer $integer)
Salin selepas log masuk
* @method setString(integer $integer)
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
14. @package
格式:@package [level 1]\[level 2]\[etc.]
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @package PSR\Documentation\API
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
15. @param
格式:@param [Type] [name] []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @param mixed[] $items Array structure to count the elements of.
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
16.@property
格式:@property [Type] [name] []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
* @property string $myProperty
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
17. @property-read
格式:@property-read [Type] [name] [ 例如:
Salin selepas log masuk
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @property-read string $myProperty
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
18. @property-write
格式:@property-write [Type] [name] []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @property-write string $myProperty
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
19.@return
格式:@return [Type] []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
* @return integer Indicates the number of items.
Salin selepas log masuk
* @return string|null The label's text or null if none provided.
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
20. @see
格式:@see [URI | FQSEN] []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @see http://example.com/my/bar Documentation of Foo.
Salin selepas log masuk
* @see MyClass::$items For the property whose items are counted.
Salin selepas log masuk
* @see MyClass::setItems() To set the items for this collection.
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
21. @since
格式:@since [version] []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @since 1.0.2 Added the $b argument.
Salin selepas log masuk
* @since 1.0.1 Added the $a argument.
Salin selepas log masuk
* @since 1.0.0
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
function dump($a, $b)
Salin selepas log masuk
<...>
Salin selepas log masuk
22. @source
格式:@source [ [] ] []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @source 2 1 Check that ensures lazy counting.
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
23. @subpackage
格式:@subpackage [name]
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @package PSR
Salin selepas log masuk
* @subpackage Documentation\API
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
24. @throws
格式:@throws [Type] []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @throws InvalidArgumentException if the provided argument is not
Salin selepas log masuk
* of type 'array'.
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
25. @todo
格式:@todo [description]
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @todo add an array parameter to count
Salin selepas log masuk
*/
Salin selepas log masuk
26. @uses
格式:@uses [FQSEN] []
例如:
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @uses MyClass::$items to retrieve the count from.
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
27. @var
格式:@var [“Type”] [$element_name] []
例如:
/** @var string|null Should contain a description
Salin selepas log masuk
* @var string $name Should contain a description
Salin selepas log masuk
* @var string $description Should contain a description
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
28. @version
格式:@version [] []
/**
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
* @version 1.0.1
Salin selepas log masuk
* @version GIT: $Id$ In development. Very unstable.
Salin selepas log masuk
*/
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk