php8.0+swoole4.x+yasd0.3.9+phpstorm 单元测试调试时附加 -e 参数
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2022-06-16 17:14:01
温馨提示:
技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
yasd启动调试时需要加一个 -e 参数,如果直接在命令输入的话没什么问题,但如果在phpstorm配置运行时-e这个参数就没办法加了,因为phpstorm配置时默认是直接用php可执行文件所在路径,然后组合调试的一些参数来启动的,如下直接用/usr/local/bin/php
些时可在php所在目录另外定义一个phpe 可执行文件并且默认加上-e 也执行命令,如下
phpe文件内容如下,注意里面路径换成自己的路径
#!/usr/bin/env sh /usr/local/bin/php -e "$@"
也可以添加一些环境变量来配合ide调试,如下添加serverName配置,让ide知道远程代码跟本本代码位置映射关系
#!/usr/bin/env sh # export XDEBUG_CONFIG="remote_enable=1 idekey=PHPSTORM remote_host=192.168.1.111 remote_port=9000 remote_autostart=1" export PHP_IDE_CONFIG="serverName=xxxxxx.loc" /usr/local/bin/php -e "$@"
添加到phpstorm中测试下,
因为phpstorm单元测试启动时默认添加的配置项为dxdubug_xxx开头的配置,所以还应该添加额外的yasd配置项,ip和端口分别是phpstorm所在机器ip和监听的端口
然后开启监听调试
在项目中下断点,执行单元测试就可以断下来了
最后提供一个自动识别项目来添加环境变量的脚本, 根据启动目录名称来添加对应的调试服务器域名
#!/usr/bin/env sh # 项目路径不正确的情况下,使用下面这一行 #projectPath=$(cd $(dirname $0);pwd) projectPath=$(pwd) # 从右往来取目录名 #projectName="${projectPath##*/}" # 通过/符号从左往右查询第二个目录名 projectName=`echo $projectPath | cut -d \/ -f 1` projectName=`echo $projectPath | cut -d \/ -f 2` projectName=`echo $projectPath | cut -d \/ -f 3` echo "projectPath:${projectPath}"; echo "projectName:${projectName}"; if [ "$projectName" = "xxxx" ]; then export PHP_IDE_CONFIG="serverName=xxxx.loc" fi /usr/local/bin/php -e "$@"