`

phpDocumentor学习记录

阅读更多


1.    为什么要写注释文档?
任何软件项目想要成功的关键之一是有好的文档,写出好的文档甚至要比写出好的代码更为重要。作为阅读代码时的第一印象,注释能够让开发人员深入你的代码。phpDocument就是为了跟容易生成文档而出现的,她甚至可以为想同的代码生成不同的文档集。

2.    使用phpDocumentor生成两种不同的文档
事实上,我们常常需要生成两种文档提供给不同的用户,例如我们可以生成“使用手册”给最终用户,生成“编程手册”给程序员。更深一步,我们可以使用@access标记来标明程序级的元素的访问属性,也可以使用@internal标记来标明文档的访问权限。

3.    phpDocumentor是什么?可以用来做什么?
phpDocumentor是一个用PHP实现的,能够直接从PHP代码或者外部文档生成完整文档的工具。事实上,php代码本身是清楚易懂得,甚至可以直接作为自己的说明文档。phpDocumentor通过解析PHP代码的逻辑结构(例如文件,类,函数,常量,全局变量,类成员/方法等),重新整理之后生成普通的可读说明文档。在1.3.0版之后,PHP5中新加入的代码元素(如类常量,接口等)也可以解析了。输出的文档有多种格式(HTML,PDF,CHM),因此通过web浏览器浏览、打印及整合至IDE。
phpDocumentor通过读取代码中一种特殊的注释(DocBlock)来生成说明文档。作为项目开发者,将对他人有帮助意义的信息写入DocBlock。
尽管添加简洁信息在代码里是必要的,但是不能代替真正那些不能写在源代码中的那些“冗长”信息,比如用户使用手册和说明文档。

4.    安装phpDocumentor
有两种方法安装phpDocument,一种是通过pear安装,另外一种是通过源码安装。
pear安装:
$ pear install PhpDocumentor
源码安装:
下载代码:http://sourceforge.net/projects/phpdocu/files/
安装有PHP的环境,就可以执行源码包的phpdoc的命令行程序了

5.    一个简单的使用示例
$ phpdoc -o HTML:frames:earthli -f sample1.php -t docs
-o选项表示输出文件格式,-f表示要分析的代码文件,-t表示输出的目录
查看帮助使用:phpdoc –h

6.    phpDocument基础
(1)    基本的docblock

/**
*
*/
 


(2)docblock的基本组成:短描述,长描述,标签

/**
* Short desc
*
* Long description first sentence starts here
* and continues on this line for a while
* finally concluding here at the end of
* this paragraph
*
* The blank line above denotes a paragraph break
*/
 


(3)docblock的描述标记
<b> -- 强调/黑体
<code> -- 用于围绕php代码,可以显示语法高亮
<br> -- 换行标识,但有可能被一些文档转换器忽略
<i> -- 斜体,用于表示重要的内容
<kbd> -- 代表键盘输入/屏幕显示
<li> -- 列表元素
<ol> -- 顺序列表
<p> -- 段落标记
<pre> -- 换行和空格保留标记(把所有标记认为是纯文本)
<samp> -- 代表例子(非php)
<ul> -- 无序列表
<var> -- 代表变量名
特殊用法:
a)    在极少的情况下,<b>用<<b>>来表示
b)    如果需要在docblock中使用’@’符号,需要加上转义符,即用’\@’表示
c)    如果需要在docblock中使用’*/’符号,需要使用’{@*}’
(4)    docblock模板
从1.2.0版开始,phpDocumentor支持docblock模板功能,模板可以减少大量的重复注释写入,比如,如果很多类成员都是私有成员,你就可以使用docblock模板来标明这些变量都是私有的:
docblock模板以’/**#@+**/’开头,以’/**#@-*/’结尾

class Bob
{
   // beginning of docblock template area
   /**#@+
   * @access private
   * @var string
   */
   var $_var1 = 'hello';
   var $_var2 = 'my';
   var $_var3 = 'name';
   /**
    * Two words
    */
    var $_var8 = 'like strings';
    /**#@-*/
    var $publicvar = 'Lookee me!';
}
 


会解析成:

class Bob
{
    // beginning of docblock template area
    /**
     * @access private
     * @var string
     */
    var $_var1 = 'hello';
    /**
     * @access private
     * @var string
     */
    var $_var2 = 'my';
    /**
     * @access private
     * @var string
     */
var $_var3 = 'name';
    /**
     * Two words
     * @access private
     * @var string
     */
    var $_var8 = 'like strings';
    var $publicvar = 'Lookee me!';
}
 


(5)标签
标签就是以’@’开头的一个标记,用于告诉phpDocumentor如何表示信息以及修改文档的展示方式。
* @abstract
* @access          共有或者私有
* @author          作者姓名 <作者email>
* @copyright        名称 日期
* @deprecated      描述
* @deprec       描述的别名
* @example        /path/to/example
* @exception       与Javadoc兼容
* @global          类型 $globalvarname
   or
* @global           函数中使用的全局变量描述
* @ignore
* @internal         内部信息或者高级程序员使用
* @param           类型 [$varname] 描述
* @return           类型 描述
* @link             URL
* @name           页面别名
   or
* @name           全局别名
* @magic           兼容phpdoc.de
* @package         包名称
* @see          名称或其他能记录在文档中的内容,
*                  在文档中生成一个指向内容的链接
* @since           版本或者日期
* @static
* @staticvar        函数中使用的静态变量的描述
* @subpackage     项目中分组后的子包
* @throws       兼容Javadoc
* @todo         兼容phpdoc.de
* @var            类型,类成员的数据类型
* @version        版本

7.    生成PHP项目文档
(1)    准备工作
先使用phpDocumentor测试一下你的项目吧
(3)使用命令行工具(linux)
-c, --config
用于加载配置文件
-cp, --converterparams
用于传递扩展转换器的动态参数,选项以逗号分隔
-ct, --customtags
自定义标签选项,选项以逗号分隔
-dh, --hidden
使用此选项用于屏蔽分析以.开头的文件
-dc, --defaultcategoryname
用于设置任何未分类的文件的默认分类
-dn, --defaultpackagename
用于设置任何未定义包名称的默认包名称
-d, --directory
这个选项或者-f选项必须要制定,如果使用-d,则会递归的分析指定的目录下以.php结尾的文件
-ed, --examplesdir
指定实例文件夹
-f, --filename
这个选项或者-d必须指定一个,如果使用-f,会分析单个文件
-i, --ignore
设置需要忽略的文件或者目录
-is, --ignoresymlinks
设定忽略符号链接
-it, --ignore-tags
设定忽略标签
-j, --javadocdesc
设定解析时兼容javadoc格式
-o, --output
设置输出文件的格式
      HTML:frames:* - 包含iframe的HTML格式
      HTML:frames:default – Javadoc风格的文档模板,很少有格式
      HTML:frames:earthli – 漂亮的模板(作者:Marco von Ballmoos)
      HTML:frames:l0l33t – 流行模板
      HTML:frames:phpdoc.de – 类似于phpdoc.de的PHPDoc输出
      HTML:frames:phphtmllib – 非常棒的用户贡献模板
      HTML:frames:phpedit – 基于PHPEdit Help Generator的文档
      HTML:Smarty:* - 不使用iframe的HTML格式
      HTML:Smarty:default – 使用css控制的黑体模板
      HTML:Smarty:HandS – 基于PHP的格式,但是经过优化,带有logo图片
      HTML:Smarty:PHP – 风格接近PHP官网
      CHM:default:* - 输出CHM帮助文档
      CHM:default:default – windows帮助文档,基于HTML:frames:l0l33t
      PDF:default:* - PDF格式
      PDF:default:default – 标准纯文本PDF格式
      XML:DocBook:* - 以DocBook格式输出的XML
      XML:DocBook/peardoc2:default – 可以被编译成peardoc的文档
-pp, --parseprivate
默认情况下,phpDocumentor不会把标记为@access private纳入文档,使用此选项可以将其纳入
-po, --packageoutput
使用此选项会将输出文档中以@package分组的标记(逗号分隔)删除
-p, --pear
使用此选项可以解析pear风格的文档
-q, --quiet
此选项将压缩命令行的输出
-s, --sourcecode
使用此选项会为每一个被解析的文件生成高亮代码,谨慎使用
-t, --target
目标路径,设定输出文档的目录
-tb, --templatebase
接受一个路径作为它的参数,设置文档模板的路径,不指定情况下为<phpDocumentor install directory>/phpDocumentor,phpDocument会在此路径的子文件夹下搜索可用的模板
-ti, --title
生成的文档的标题
-ue, --undocumentedelements
这个选项用于设置在遇到没有docblock标记的class或者method时,是否输出warning信息
8.    代码中的标签
define声明:
@name
函数声明:
@global
@param
@return
@staticvar
inline{@source}
全局变量:
@name
类元素:
@package
@subpackage
@static
继承标签:
在子类的docblock前使用关键字inherite指定从父类继承docblock,可以覆盖
类变量:
@var
类方法
@global
@param
@return
@static
@staticvar
inline{@source}

1
5
分享到:
评论

相关推荐

    手撕源码C++哈希表实现:从底层原理到性能优化,看完面试官都怕你!(文末附源码)

    哈希表源码

    sun_3ck_03_0119.pdf

    sun_3ck_03_0119

    MATLAB实现基于LSTM-AdaBoost长短期记忆网络结合AdaBoost时间序列预测(含模型描述及示例代码)

    内容概要:本文档详细介绍了基于 MATLAB 实现的 LSTM-AdaBoost 时间序列预测模型,涵盖项目背景、目标、挑战、特点、应用领域以及模型架构和代码示例。随着大数据和AI的发展,时间序列预测变得至关重要。传统方法如 ARIMA 在复杂非线性序列中表现欠佳,因此引入了 LSTM 来捕捉长期依赖性。但 LSTM 存在易陷局部最优、对噪声鲁棒性差的问题,故加入 AdaBoost 提高模型准确性和鲁棒性。两者结合能更好应对非线性和长期依赖的数据,提供更稳定的预测。项目还展示了如何在 MATLAB 中具体实现模型的各个环节。 适用人群:对时间序列预测感兴趣的开发者、研究人员及学生,特别是有一定 MATLAB 编程经验和熟悉深度学习或机器学习基础知识的人群。 使用场景及目标:①适用于金融市场价格预测、气象预报、工业生产故障检测等多种需要时间序列分析的场合;②帮助使用者理解并掌握将LSTM与AdaBoost结合的实现细节及其在提高预测精度和抗噪方面的优势。 其他说明:尽管该模型有诸多优点,但仍存在训练时间长、计算成本高等挑战。文中提及通过优化数据预处理、调整超参数等方式改进性能。同时给出了完整的MATLAB代码实现,便于学习与复现。

    免费1996-2019年各地级市平均工资数据

    1996-2019年各地级市平均工资数据 1、时间:1996-2019年 2、来源:城市nj、各地级市统计j 3、指标:平均工资(在岗职工) 4、范围:295个地级市

    [AB PLC例程源码][MMS_040384]Winder Application.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    C2Former: 解决RGB-红外物体检测中模态校准与融合不精确问题的标定互补变压器

    内容概要:本文介绍了一种新颖的变压器模型C2Former(Calibrated and Complementary Transformer),专门用于解决RGB图像和红外图像之间的物体检测难题。传统方法在进行多模态融合时面临两个主要问题——模态错位(Modality miscalibration)和融合不准确(fusion imprecision)。作者针对这两个问题提出采用互模交叉注意力模块(Inter-modality Cross-Attention, ICA)以及自适应特征采样模块(Adaptive Feature Sampling, AFS)来改善。具体来说,ICA可以获取对齐并且互补的特性,在特征层面进行更好的整合;而AFS则减少了计算成本。通过实验验证了基于C2Former的一阶段和二阶段检测器均能在现有公开数据集上达到最先进的表现。 适合人群:计算机视觉领域的研究人员和技术人员,特别是从事跨模态目标检测的研究人员,对Transformer架构有一定了解的开发者。 使用场景及目标:适用于需要将可见光和热成像传感器相结合的应用场合,例如全天候的视频监控系统、无人驾驶汽车、无人

    上海人工智能实验室:金融大模型应用评测报告-摘要版2024.pdf

    上海人工智能实验室:金融大模型应用评测报告-摘要版2024.pdf

    malpass_02_0907.pdf

    malpass_02_0907

    C++-自制学习辅助工具

    C++-自制学习辅助工具

    微信生态系统开发指南:涵盖机器人、小程序及公众号的技术资源整合

    内容概要:本文提供了有关微信生态系统的综合开发指导,具体涵盖了微信机器人的Java与Python开发、全套及特定应用的小程序源码(PHP后台、DeepSeek集成),以及微信公众号的基础开发与智能集成方法。文中不仅给出了各种应用的具体案例和技术要点如图灵API对接、DeepSeek大模型接入等的简述,还指出了相关资源链接以便深度探究或直接获取源码进行开发。 适合人群:有意开发微信应用程序或提升相应技能的技术爱好者和专业人士。不论是初涉者寻求基本理解和操作流程,还是进阶者期望利用提供的资源进行项目构建或是研究。 使用场景及目标:开发者能够根据自身兴趣选择不同方向深入学习微信平台的应用创建,如社交自动化(机器人)、移动互联网服务交付(小程序),或者公众信息服务(公众号)。特别是想要尝试引入AI能力到应用中的人士,文中介绍的内容非常有价值。 其他说明:文中提及的多个项目都涉及到了最新技术栈(如DeepSeek大模型),并且为不同层次的学习者提供从零开始的详细资料。对于那些想要迅速获得成果同时深入了解背后原理的人来说是个很好的起点。

    pimpinella_3cd_01_0916.pdf

    pimpinella_3cd_01_0916

    mellitz_3cd_01_0516.pdf

    mellitz_3cd_01_0516

    schube_3cd_01_0118.pdf

    schube_3cd_01_0118

    [AB PLC例程源码][MMS_046683]ME Faceplates for 1738 Digital and Analog I-O with Descriptions.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_040371]Communication between CompactLogix Controllers on DeviceNet.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_046507]SE Faceplates for 1797 Digital and Analog I-O.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    智慧用电平台建设解决方案【28页】.pptx

    智慧用电平台建设解决方案【28页】

    lusted_3ck_01_0519.pdf

    lusted_3ck_01_0519

    HCIP作业1 这里面是完成的ensp的拓扑图

    HCIP作业1 这里面是完成的ensp的拓扑图

    会员式点餐小程序v1.2.1+前端-无错源码.zip

    会员式点餐小程序1.2.1 前端 会员卡点餐小程序 适用于书吧、咖啡书屋、健身房等有会员卡充值需求的场所。 小程序专属会员模式,可享受折扣为余额充值,稳定客流。 版本号:1.2.1 适配一个php兼容性错误 修改消息通知模板

Global site tag (gtag.js) - Google Analytics