PHPStorm 命令行工具支持 - 添加 hyperf 命令 作者: Chuwen 时间: 2023-07-07 分类: 神奇技巧 评论 ## 操作步骤 1. 打开 PHPStorm 设置 2. 选择 **Tools | Command Line Tool Support**(工具) 3. 再选择 **Command Line Tools**(命令行工具支持) 4. 点击 “+” 添加 ![](https://cdn.nowtime.cc/2023/07/07/3007301678.png) 5. 按照如图所示选择 ![](https://cdn.nowtime.cc/2023/07/07/2083503232.png) 6. 工具设置 * **别名** 可按照自己需求输入比如 `hyperf`、`h`,这里我为了方便选择 `h` 作为别名 * **脚本路径** 输入 hyperf 脚本的相对路径 `bin/hyperf.php` ![](https://cdn.nowtime.cc/2023/07/07/3110325419.png) 7. 最点击确定、应用设置即可 ![](https://cdn.nowtime.cc/2023/07/07/211859290.png) ## 使用 1. 双击 Ctrl 键唤出“运行任何内容”窗口 ![双击 Ctrl 键唤出“运行任何内容”窗口](https://cdn.nowtime.cc/2023/07/07/3703838478.png) 2. 输入相关命令如 `h d`,然后就会进行命令联想 ![](https://cdn.nowtime.cc/2023/07/07/2930141368.png) 3. 选定一个命令,按回车运行 ![](https://cdn.nowtime.cc/2023/07/07/3925011794.png)
Hyperf 单元测试运行报错:PHP Warning: pcntl_fork() has been disabled for security reasons in... 作者: Chuwen 时间: 2023-06-12 分类: PHP 评论 ## 背景 因为 Hyperf 使用协程运行,故原本的 PHPUnit 的方式就无法运行,需要使用框架自带的 `co-phpunit` 二进制程序运行 ## 配置 PHPUnit 如果你原本就配置了 PHPUnit,建议删掉重新配置 ![](https://cdn.nowtime.cc/2023/07/09/536344092.png) 然后再按照如下步骤进行配置: 1. **PHPUnit 库**选择 *phpunit.phar* 路径 2. *phpunit.phar* 输入框选择你项目路径下的 `vendor/bin/co-phpunit` 文件 3. **测试运行程序** - *默认配置文件* 勾选,选择项目路径下的 `phpunit.xml` 文件 4. 最后点击“确定”保存即可 ![](https://cdn.nowtime.cc/2023/07/09/2791021112.png) ## 调整 PHPUnit "运行/调试配置模版" ![](https://cdn.nowtime.cc/2023/06/12/1302679487.png) 在第 4 步输入例如:`--prepend /Users/chuwen/wwwroot/xxxxx-hyperf/test/bootstrap.php`,其中 *xxxxx-hyperf* 是项目名,要改成你的项目名 ![](https://cdn.nowtime.cc/2023/06/12/3789934554.png) 移除在配置前的配置 ![](https://cdn.nowtime.cc/2023/06/12/3500733315.png) 然后再运行一下就可以了 ![](https://cdn.nowtime.cc/2023/06/12/2418105964.png)
Hyperf 使用 @date、@datetime 注释启动都报错 作者: Chuwen 时间: 2021-07-03 分类: PHP 评论 Hyperf 使用 @date、@datetime 注释启动都报错 ### 使用 @date 注释 代码如下: ```php * @date: 2021/7/3 12:28 */ public function index(RequestInterface $request, ResponseInterface $response): \Psr\Http\Message\ResponseInterface { return $response->raw($this->help()); } } ``` 报错: ```log #4 /www/wwwroot/NowTool/vendor/hyperf/d in /www/wwwroot/NowTool/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php on line 39 Fatal error: Uncaught Doctrine\Common\Annotations\AnnotationException: [Semantical Error] The annotation "@date" in method App\Controller\V1\Video\DouyinController::index() was never imported. Did you maybe forget to add a "use" statement for this annotation? in /www/wwwroot/NowTool/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php:39 Stack trace: ``` ### 使用 @datetime 注释 又报以下错误: ```log Fatal error: Uncaught Doctrine\Common\Annotations\AnnotationException: [Semantical Error] The class "datetime" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "datetime". If it is indeed no annotation, then you need to add @IgnoreAnnotation("datetime") to the _class_ doc comment of method App\Controller\V1\Video\DouyinController::index(). in /www/wwwroot/NowTool/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php:39 Stack trace: ``` > The class "datetime" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "datetime". ### 看到以上错误大概需要怎么做了 参照文档的“注解”部分:https://hyperf.wiki/2.1/#/zh-cn/annotation 解决办法就是,添加需要忽略“注解”,配置文件位置 `/config/autoload/annotations.php`: ![](https://cdn.nowtime.cc/2021/07/03/7126507.png) 然后就可以正常启动了 ![](https://cdn.nowtime.cc/2021/07/03/1670611706.png)