machitgarha / bimoo
Moodle声明占位符,帮助IDE和静态分析器
Requires
- php: ^7.4|^8.0
Requires (Dev)
- php-stubs/generator: dev-constant-support
- symfony/console: ^5.3
- webmozart/path-util: ^2.3
README
Moodle声明占位符,包括类、函数和全局变量,感谢 php-stubs/generator,帮助IDE和静态分析器。
注意: 占位符文件可能不完整(仅针对有限部分生成),并且可能不会定期更新。但是,欢迎贡献,包括问题和拉取请求。
如何使用它?
首先,感谢您使用它。
简单地在您的 composer.json
中引入它
composer require --dev machitgarha/bimoo
现在,您的IDE(或文本编辑器)应该会显示Moodle函数和类的建议。不仅如此,您还可以指导您的静态分析器。
包含哪些内容?
首先:占位符文件是从 官方Moodle仓库的镜像 生成的。对 stubs.php
的更新必须手动从仓库完成和提交,但整个过程几乎自动化(使用 bin/generate-stubs
可执行文件)。
要查看包含和未包含的路径,请查看 data/path-list.json
文件。您可以使用glob模式,但建议不要这样做(因为它会导致占位符文件过大)。
发布管理
为了正确跟踪Moodle版本,并防止冲突和混淆,我们不使用 语义版本控制,而是使用以下方法
每个版本都是以下形式:<MoodleMajor>.<MoodleMinor>.<BimooUpdate>
。
<MoodleMajor>
和 <MoodleMinor>
是Bimoo版本基于的Moodle发布号的组成部分,如 此处 所述。不包含Moodle版本中错误修复部分的原因是官方文档所说的:“类似于2.2.1、2.2.2、2.2.3等发布仅包含基于最新主要发布(2.2)的修复,永远不会包含任何重大新功能或数据库更改”。
<BimooUpdate>
是特定Moodle版本的当前库的状态。换句话说,考虑到Moodle的特定次要版本,每次更新库(即占位符文件)时都会增加。
例如,3.11.19
表示支持Moodle 3.11.*的第20个更改系列。请注意,它与Moodle 3.11.19(可能永远不会发布)无关。
每个比最新支持的Moodle版本更旧的版本都有一个单独的分支。分支被命名为它们跟踪的Moodle版本,例如 3.9
。理想情况下,master
分支跟踪最新的Moodle版本。
注意: 并没有保证支持Moodle目前支持的所有版本。但是,社区(也许是你)的支持是非常受欢迎的。
待办事项
- 使用GitHub Actions来自动化过程。工作流将是,克隆Moodle的仓库,切换到最新稳定版本,运行生成器以预定义的路径和文件列表,提交更改并将其推回。
贡献
请随意。
重新生成占位符文件
首先,将您的文件和模式添加到 data/path-list.json
文件中。然后,运行以下命令以自动重新生成 stubs.php
./bin/generate-stubs <moodle-root-dir>
<moodle-root-dir>
是指向Moodle安装或(克隆的)官方仓库的路径(有关更多信息,请参阅 --help
)。
就是这样!提交更改,创建一个PR,我们都会很高兴!
许可证
许可协议:GPL 3.0。