phpDocumentor的使用方法


有些phper写的代码在一段时间后可能自己都看不懂自己写的代码是什么,而且还不写注释,给未来读这段代码的人或者自己带来了困扰,这次说一下php中利用代码注释生成文档的一个包,phpDocumentor。
在这里许个愿,希望以后我自己读到的代码都能有一些良好的注释

简单介绍

phpDocumentor(phpDoc)是一个记录文档的程序,会自动帮你根据项目中所有文件的文档块然后生成文档

安装方式

官方推荐安装方式为docker安装
第二种就是手动下载phar包
第三种就是使用phive,我是使用这种方式安装的,需要注意,使用这种方式安装的时候,默认会下载最新的版本,可能和你的php环境不符…比如我的php版本就是7.3的,所以你就需要去官网上面找支持你php版本的包,比如我7.3的版本需要下载做了向下兼容7.3版本的phpDocumentor@v3.2.1
另外,官方并不推荐composer的方式,虽然有这种方式

这里要说明一下,phar包可以在win10中的powershell中运行也可以在gitbash中运行,想要全局安装的话,只需要把扩展名删掉,然后在系统的环境变量中添加这个文件的路径,就可以在你需要使用phpDocumentor生成文档的项目根路径中使用这个命令了

命令参数

-d 指定要记录的项目的一个或多个目录。默认会在你执行命令的目录内的文件
-f 指定项目中要记录的一个或多个特定文件
-t 指定文档的写入目录,默认会在你执行命令的目录下生成一个.phpdoc的文件夹
-i 忽略某个文件或者目录支持通配符的方式,例如 -i “./*/*test.php”
–title 浏览器的标题,可以写你的项目名称
其余的命令看起来没有什么实际的东西,你可以自己用-h去查看

文档块

整个程序做的所有内容都是研究注释
所以文档块就是注释的规则

文档块区分三个部分
标题->描述->标签

标题:简单说一下这个文档块负责的是什么
描述:详细说一下具体想干啥,有什么作用,给我感觉和上面差不多…扩展会识别每一部分在 [ . ]后换行结束,或者在有一行空白注释行结束,所以我的建议是,写完标题部分就给一行空注释,方便阅读,也少写了一个[ . ],对吧!

你可以用利用标签简单写一点注释,每一个部分其实都不是必须的
大概就是类似于这样的

/**
  * 我是一个标题
  *
  * 元素描述
  * @param string $a  [参数描述]
  * @return void [返回值描述]
*/

可以在下面每一个结构体之前标记你的文档块
Function | Constant | Class | Interface | Trait
还有page(就是整个文件)的开头,比如 [ <?php ] 的下一行

标签

这里只说明我觉着有用的标签,其余标签不是很好用

标签描述
@param [类型] [变量名]声明function需要传入的参数和类型
@return [类型] [描述]声明function的返回类型和描述
@throws [异常类型] [描述]用于提示可能会抛出的异常类型和文本描述
@property | @property-read | @property-write [类型] [属性名]声明类属性[可读写 | 只读 | 只写]
@package [包名]声明当前文档块下的元素包名,[ \ ] | [ _ ]会解析成包分隔符
@deprecated <版本> [描述]此标签用来说明当前文档块下的元素已经弃用的版本和原因
@link [URL] [描述]此标签用来写入一个url链接,这个标签有行内写法像这样 : {@link [URL] [描述]}
@see [文档中存在的元素 | URL]用于链接到文档内的任何元素,或者URI
@uses [文档中存在的元素] [描述]看起来和see差不多,不同的是这个标签会在对应的元素中自动生成反标签
@todo [描述]提示可能将要开发的文件或者function
@method [return] [方法名(参数)] [描述]用于声明使用魔术方法来实现的一些非显示存在方法
@ignore此标签用来告诉phpDocumentor需要忽略记录的元素

其余标签可以自己去官方查看,这里就不介绍了

类型

这里说的是上面标签里的类型的解释
第一 php原有的类型
int、string、array、float、bool、object、callable、iterable、resource、null

第二 可以是类名,也可以是类的别名,以及某命名空间下的类名比如 \Test

第三 还可以是在phpDoc标准的特殊关键字或者伪类型,比如 falsofixed 等
假如你use了一个类并且起了别名的话如 use \Test as Test1; 那么类型也可以是Test1

还可以是伪类型,比如:

  • mixed 可以是任何类型
  • void 无任何类型
  • false|true 显示的bool类型
  • self 自身
  • static 静态如果有继承,将表示子类
  • $this 通常表示对象实例

另外可以写成string[ ] | callable[ ] 等等这种,表示接收的是字符串类型数组 | 回调函数的数组等
想使用多种类型时也可以通过管道符[ | ]来表示,例如bool | string 这种方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值