💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### 你的第一份注释集 #### 概述 本教程的目标是以书面形式向您介绍,并随后使用phpDocumentor生成有效的文档。 #### 写一个文档块 `DocBlock`是源代码中的一段内联文档,用于告诉您,其它的`类`,`方法`或其他`结构元素`的功能。 ##### 哪些元素可以记录? 讨论`DocBlock`之前,我们首先看一下您可以用`DocBlock`来记录的内容。 `phpDocumentor`遵循`PHPDoc`的定义,并主要用于识别以下结构元素: * Function(函数) * Constant(常量) * Class(类) * Interface(接口) * Trait(Trait) * Class constant(类常量) * Property(属性) * Method(方法) 除上述外,PHPDoc标准还支持DocBlocks 为文件以及`include / require`语句进行注释,即使PHP本身并不知道这个概念。 这里面的每一个元素都可以有一个与之关联的`DocBlock`,它直接位于这些元素的前面。`DocBlock`和元素定义的开始之间应该没有代码或其它注释。 ##### DocBlock的外观如何? `DocBlocks`总是被包含在一个名为 `DocComment`的注释类型中,该注释类型始于`/**`并以`*/`结束。开始和结束语句之间的每一行都应以星号(`*`)开头。每个 `DocBlock`先于一个结构元素,而 `DocBlock`的所有内容都应用于该关联元素。 例如: ~~~ <?php /** * This is a DocBlock. */ function associatedFunction() { } ~~~ > 注意 文件级别的DocBlocks 很多时候项目会想要为整个文件而不是单个元素记录许可证或功能。这可以通过将`DocBlock`作为文件中的第一个元素来完成。需要注意的是,每当另一个结构元素直接跟随DocBlock时,它不再被识别为文件级别的DocBlock,而是属于后续元素。 以下DocBlock是一个文件级别的DocBlock: ~~~ <?php /** * I belong to a file */ /** * I belong to a class */ class Def { } ~~~ 但是在下面的例子中,DocBlock属于这个类: ~~~ <?php /** * I belong to a class */ class Def { } ~~~ DocBlocks分为以下三部分。这些部分中的每一部分都是可选的,除了 没有概要的描述属性可能不存在。 ###### 概要 有时称为简短描述,简要介绍关联元素的功能。摘要以这些情况之一结束: 一个点跟随一个换行符,或遇到两个后续换行符。 ###### 描述 有时称为长描述,可以提供更多信息。附加信息的例子是函数算法的描述,用例或描述类如何适应整个应用程序的体系结构。描述在遇到第一个标记或`DocBlock`关闭时结束。 ###### 标签和注释 这些提供了一种简洁而统一地提供关于相关元素的元信息的方式。例如,这可以描述方法或函数返回的信息类型。每个标签前面都有一个符号(@),并以新行开始。 #### 示例 一个DocBlock看起来像这样 ~~~ <?php /** * A summary informing the user what the associated element does. * * A *description*, that can span multiple lines, to go _in-depth_ into the details of this element * and to provide some background information or textual references. * * @param string $myArgument With a *description* of this argument, these may also * span multiple lines. * * @return void */ function myFunction($myArgument) { } ~~~ 我们一行一行地讨论这个例子,讨论哪个是哪个, * 第2行 从`/**`开始,显示一个DocBlock。 * 第3行 带有一个摘要的例子。通常是一行,但也可能会覆盖多行,只要未达到前一章中定义的摘要末尾。 * 第5行和6行 显示一个描述的例子,它可能跨越多行,并且可以使用Markdown标记语言进行格式化 。使用Markdown,您可以使文本变为粗体,斜体,添加编号列表,甚至提供代码示例。 * 第8行和第11行 表明您可以在DocBlocks中包含标签以提供有关后续元素的附加信息。在这个例子中,我们声明参数`$myArgument`是`string`类型的,并且描述了这个参数代表什么,我们还声明了这个方法的返回值是`void`,这意味着没有返回值。 * 第12行 显示闭幕声明`*/`,这与多行注释()相同。`/* .. */` 如果您想了解更多关于DocBlocks为您做些什么,请参阅`Inside DocBlocks`一章以获取更深入的信息。 #### 运行phpDocumentor 在你安装完`phpDocumentor`之后,你可以使用`phpdoc`命令生成相应的文档。 在本文中,我们预计phpdoc命令可用; 因此,无论何时我们要求您运行命令,它都将采用以下形式: ~~~ $ phpdoc ~~~ 暗示 当你通过编辑器或手动安装版本时,应该调用phpDocumentor安装文件夹中的phpdoc脚本bin。 在Linux / MacOSX下,这将是: ~~~ $ [PHPDOC_FOLDER] / bin / phpdoc ~~~ 在Windows下,这将是: ~~~ $ [PHPDOC_FOLDER] \ bin \ phpdoc.bat ~~~ `phpDocumentor`的基本用法是使用命令行选项(`-d`对于目录,`-f`对于文件)提供输入位置,并告诉它将文档输出到您喜欢的文件夹(`-t`)中。 例如: ~~~ $ phpdoc -d ./src -t ./docs/api ~~~ 上面的例子是扫描`src`目录及其子目录中的所有文件,执行分析并生成包含文件夹中文档的网站`docs/api`。如果你想要,你甚至可以省略`-t` 选项,在这种情况下,输出将被写入到一个名为的子文件夹中`output`。 > 提示 `phpDocumentor`具有几个[模板](https://phpdoc.org/templates),您可以使用它更改文档的外观。有关如何在模板之间切换的更多信息,请参阅[`更改外观和感觉`](https://docs.phpdoc.org/getting-started/changing-the-look-and-feel.html)一章。 `phpDocumentor`有很多选项,您可以在[`配置文件`](https://docs.phpdoc.org/references/configuration.html)中将它们全部定义并包含在您的项目中,但这不在本教程的范围之内。如果你想知道更多关于[运行`phpDocumentor`](https://docs.phpdoc.org/guides/running-phpdocumentor.html)的信息; 有关运行`phpDocumentor`的更多信息,请参阅指南。