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:

<?php

/**

* 函数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

七.标签格式

[email protected]

格式:@api

例如:

/**

*

* @api

*

*/

2. @author

格式:@author [name] [<email address>]

例如:

/**
     * @author My Name
     * @author My Name <[email protected]>
     */

3. @category

格式:@category [description]
例如:
/**
      * @category MyCategory
      */

4. @copyright

格式:@copyright [description]
例如:
/**
      * @copyright 1997-2005 The PHP Group
      */

5. @deprecated

格式:@deprecated [<version>] [<description>]

例如:

/**
     * @deprecated
     * @deprecated 1.0.0
     * @deprecated No longer used by internal code and not recommended.
     * @deprecated 1.0.0 No longer used by internal code and not recommended.
     */

6. @example

格式:@example [location] [<start-line> [<number-of-lines>] ] [<description>]

例如:

   /**
     * @example example1.php Counting in action.
     * @example http://example.com/example2.phps Counting in action by a 3rd party.
     * @example "My Own Example.php" My counting.
     */

7. @filesource

格式:@filesource

例如:

    /**
      * @filesource
      */

8. @global

格式:@global [Type] [name] @global [Type] [description]

例如:

    /**
      * @global string $user
      * @global string username
      */

9. @ignore

格式:@ignore [<description>]

例如:

     /**
      * @ignore
      */

10. @internal

格式:@internal [description]

例如:

      /**
        * @internal
        */

11. @license

格式:@license [<url>] [name]

例如:

     /**
       * @license GPL
       * @license http://opensource.org/licenses/gpl-license.php GNU Public License
       */

[email protected]

格式:@link [URI] [<description>]

{@link [URI] [<description>]}

例如:

      /**
        * @link http://example.com/my/bar Documentation of Foo.
        * When no more Foo ({@link http://example.com/my/bar}) are given 
        * this function will add one as there must always be one Foo.
        */

13. @method

格式:@method [return type] [name]([[type] [parameter]<, ...>]) [<description>]

例如:

      /**
        * @method string getString()
        * @method void setInteger(integer $integer)
        * @method setString(integer $integer)
        */

14. @package

格式:@package [level 1]\[level 2]\[etc.]

例如:

      /**
        * @package PSR\Documentation\API
        */

15. @param

格式:@param [Type] [name] [<description>]

例如:

      /**
        * @param mixed[] $items Array structure to count the elements of.
        */

16.@property

格式:@property [Type] [name] [<description>]

例如:

       /**
         * @property string $myProperty
         */

17. @property-read

格式:@property-read [Type] [name] [<description]

       例如:
/**
         * @property-read string $myProperty
         */

18. @property-write

格式:@property-write [Type] [name] [<description>]

例如:

      /**
        * @property-write string $myProperty
        */

19.@return

格式:@return [Type] [<description>]

例如:

       /**
         * @return integer Indicates the number of items.
         * @return string|null The label‘s text or null if none provided.
         */

20. @see

格式:@see [URI | FQSEN] [<description>]

例如:

      /**
        * @see http://example.com/my/bar Documentation of Foo.
        * @see MyClass::$items For the property whose items are counted.
        * @see MyClass::setItems() To set the items for this collection.
        */

21. @since

格式:@since [version] [<description>]

例如:

    /**
      * @since 1.0.2 Added the $b argument.
      * @since 1.0.1 Added the $a argument.
      * @since 1.0.0
      *
      */
      function dump($a, $b)
      {
          <...>
      }

22. @source

格式:@source [<start-line> [<number-of-lines>] ] [<description>]

例如:

    /**
      * @source 2 1 Check that ensures lazy counting.
      */

23. @subpackage

格式:@subpackage [name]

例如:

    /**
      * @package PSR
      * @subpackage Documentation\API
      */

24. @throws

格式:@throws [Type] [<description>]

例如:

    /**
      * @throws InvalidArgumentException if the provided argument is not 
      *  of type ‘array‘.
      */

25. @todo

格式:@todo [description]

例如:

    /**
      * @todo add an array parameter to count
  */

26. @uses

格式:@uses [FQSEN] [<description>]

例如:

    /**
      * @uses MyClass::$items to retrieve the count from.
     */

27. @var

格式:@var [“Type”] [$element_name] [<description>]

例如:

    /** @var string|null Should contain a description
      * @var string $name        Should contain a description
      * @var string $description Should contain a description
      */

28. @version

格式:@version [<vector>] [<description>]

    /**
      * @version 1.0.1
      * @version GIT: $Id$ In development. Very unstable.
      */
 
时间: 2024-10-11 06:53:51

phpDocumentor学习使用记录的相关文章

Activiti 学习笔记记录(三)

上一篇:Activiti 学习笔记记录(二) 导读:上一篇学习了bpmn 画图的常用图形标记.那如何用它们组成一个可用文件呢? 我们知道 bpmn 其实是一个xml 文件

舌尖上的安卓(android触控事件机制学习笔记录)

对于一个"我们从来不生产代码,我们只是大自然代码的搬运工"的码农来说.对android的触控机制一直是模棱两可的状态,特别是当要求一些自定义的控件和androide的自带控件(比如ViewPager,ListView,ScrollView)高度嵌套在一起使用时. 花了点时间梳理了下,做个笔记.对于一个触控的事件从用户输入到传递到Actigvity到最外层的Viewgroup在到子View,中间过程还可能穿插多个Viewgroup,android在ViewGroup提供了3个方法来控制流

django book学习问题记录

—————————————————————————————————— 位置:第五章<模型> 问题描述: >>> p1 = Publisher.objects.create(name='Apress', ... address='2855 Telegraph Avenue', ... city='Berkeley', state_province='CA', country='U.S.A.', ... website='http://www.apress.com/') >

Activiti 学习笔记记录(二)

上一篇:Activiti 学习笔记记录 导读:对于工作流引擎的使用,我们都知道,需要一个业务事件,比如请假,它会去走一个流程(提交申请->领导审批---(批,不批)---->结束),Activiti就是来走这个流程的.所以我们还需要将Activiti 和 业务结合起来,即部署定义(画一个流程图,生成 bpmn 格式的文件).本章,就来讲 bpmn 的图怎么画? 一.什么是 bpmn 业务流程建模标记法 BPMN (Business Process Model and Notation),是工作

COM 学习小记录

COM组件程序:模块,它可以是 动态连接库(DLL) && 可执行程序(EXE),称为 进程内组件(in-of-process component) && 进程外组件(out-of-process component). COM对象:建立在二进制可执行代码级的基础上,因此COM对象是语言无关的,这一特性使得使用不同编程语言开发的组件对象进行交互成为可能. COM标准:规范 && 实现.规范:定义了组件和组件之间的通信机制,不依赖于特定的语言和操作系统:实现:

Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考

前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的.不过好在Lucene.net 已经有了Core 2.0版本(4.8.0 bate版),而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示. Lucene.net 4.8.0 https

学习工作记录五

学习工作记录 这是第八周.第七周的合在这里一起写了,主要就是考试,改论文,看spring相关内容.改论文该得心态有点崩. 一 . 文献阅读 没有阅读,主要是调研. 二 . 项目进展 1.环境配置成功,学习如何搭环境以及配置spring. 三 .工作内容 1.这周任务完成情况 任务 完成情况 备注 论文两篇 未完成 调研了许多论文,没细看 掌握spring 未完成 怎么可能完成,我怎么定这么脑残的目标 数值分析自学完成"插值"一章 未完成 进入新篇章了,我该加快进度了 <Acade

学习工作记录汇总

1.学习工作记录--(知识图谱相关论文阅读) 2.学习工作记录--反思 3.学习工作记录三 4.学习工作记录四 5.学习工作记录五 6.学习工作记录六 原文地址:https://www.cnblogs.com/cafe3165/p/10055904.html

OPC学习开发记录(C#):OPC客户端【开篇】

OPC客户端 1.前言 思前想后,还是写下来实在一点,一来可以对自己的学习开发结果进行总结,二来可以锻炼自己表达能力,如何能够将意思表达清楚.博客园真的没有认真做做记录,也不会排版,丑的一比.关于OPC开发的,从零慢慢开始学习(谁不是呢),从简单的开始,OPC客户端是怎么使用的问题,站在用户(相对)的角度,也是比较简单的一部分,易从这一部分入手.根据网上的源码,我很快就自己开发了一个将就能用的OPC客户端,主要目的还是掌握OPC的结构和用法,为以后OPC服务器开发做铺垫.本篇为记录开篇,新手上路