| Key | Value |
|---|---|
| Plugin Url | https://plugins.jetbrains.com/plugin/23164 |
| ID | io.maliboot.www.hyperf |
| Changelog | CHANGELOG |
This is a PHPStorm plugin that provides support for the hyperf framework/component or third-party vendor extensions dependent on hyperf components. Enhancements include debug features and support for Lombok.
这是一个对hyperf框架/组件、或者依赖hyperf组件的第三方vendor扩展包,提供功能支持的PHPStorm插件。包含debug增强、lombok支持等。
- 通过插件市场安装 Hyperf Booster
Settings -> Plugins -> Browse repositories - 通过本地磁盘安装 Hyperf Booster
Settings -> Plugins -> Install Plugin from Disk...,插件jar包可以在release页面找到 - 预览版本只能通过release页面安装,里面包含了一些正在测试中的功能
- 重复类声明:当AOP类产生代理文件,屏蔽重复类声明的异常报错。如
App_User.proxy.php 处存在类 'User' 的其他声明错误将不再显示 - 拼写检查:屏蔽框架常用词如
hyperf、swoole、jsonrpc等等单词的拼写错误警告。如有遗漏或补充,请提交Issue给我。
- 支持像创建
Symfony项目一样,创建Hyperf项目。 - 提供多版本的
Hyperf骨架版本选择
swoole官网提到,在版本5.1以上支持了xdebug调试,所以做了这样一个功能。此功能主要是为了解决Hyperf调试时,断点跳到代理文件内的问题。
调试准备,php.ini中修改:
swoole.enable_fiber_mock=On
本插件会定位模板文件或代理文件的断点所在行第一个ast节点,计算出该节点的树路径相对偏移量,得出对应文件的断点位置,尽可能让hyperf得以在模板文件内调试

hyperf的AOP会生成编译生成代理文件,如
app/IndexController.php会生成./runtime/container/proxy/APP_IndexController.proxy.php代理文件。当程序启动时,IndexController.php变成了模板文件不再参与程序运行,APP_IndexController.proxy.php成为了实际上真正运行的文件,所以当debug调试程序时所有的断点和堆栈列表日志都追溯到了代理文件内。
- Lombok支持:maliboot/lombok适配,解决该PHP扩展使用时编辑器没有自动补全、参数提示、错误语法高量、导航等功能。
- 该功能完全不依赖
代理文件。通过构建了相应的FakePhpPsiElement元素, 旨在极端情况下(如项目没有热启动,无法更新代理文件时),提供对maliboot/lombok的全方位支持

