底层实现 (Under the hood)
处理流程 (Processing flow)
- Generator 会迭代处理给定的源文件(Symfony
Finder、文件/目录列表等)。 - 配置好的分析器(
AnalyserInterface)会读取文件并构建一个 Analysis 对象。默认(v4 及以后)是ReflectionAnalyser。此外,还有一个TokenAnalyser,它是 v3 版本的默认分析器。 - 旧版
TokenAnalyser在 v5 中已被移除。 - Analysis 对象及其注解随后由配置好的处理器进行处理。
- 如果启用,将对分析结果/注解进行验证。
- 根
OpenApi注解随后包含所有注解,并被序列化为 YAML/JSON。
上下文 (Context)
每个注解都与一个唯一的 Context 实例相关联。它包含了由解析器/分析器收集到的关于找到注解的 PHP 上下文的详细信息。
通常会有一个处理器使用这些数据来增强/丰富注解。
收集的数据示例:
- 类/接口/特性/枚举名称
- 属性名称
- docblock 类型或原生类型提示
- 文件名和行号
分析 (Analysis)
包含所有检测到的注解和其他相关的元数据。
它使用一个 SplObjectStorage 实例来存储解析后的注解。
文档 (Documentation)
本文档是使用 VitePress 生成的。
安装
cd docs
npm install
工作流程
- 编辑
docs文件夹中的.md文件。 - 更新注解/属性的 PHP docblocks。
- 这些内容将在发布时提取到 reference 部分。
- 运行
composer docs:build检查是否有任何错误。 - 运行
composer docs:dev在本地测试生成的文档(localhost:3000)。 - 创建 PR 并更新
master分支。 - 手动触发
gh-pages工作流来更新在线文档。
最后一步需要在 zircote/swagger-php 上拥有提交权限。