php8.0+swoole4.x+yasd0.3.9+phpstorm 单元测试调试时附加 -e 参数

来源:赵克立博客 分类: Linux 标签:Linux命令发布时间:2022-04-13 17:10:15最后更新:2022-06-16 17:14:01浏览:44
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2022-06-16 17:14:01
温馨提示:
技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

yasd启动调试时需要加一个  -e 参数,如果直接在命令输入的话没什么问题,但如果在phpstorm配置运行时-e这个参数就没办法加了,因为phpstorm配置时默认是直接用php可执行文件所在路径,然后组合调试的一些参数来启动的,如下直接用/usr/local/bin/php

2204131649840833680455.png

些时可在php所在目录另外定义一个phpe 可执行文件并且默认加上-e 也执行命令,如下

2204131649840952730582.png

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中测试下,

2204131649841009707643.png


因为phpstorm单元测试启动时默认添加的配置项为dxdubug_xxx开头的配置,所以还应该添加额外的yasd配置项,ip和端口分别是phpstorm所在机器ip和监听的端口

2204131649843486114667.png

然后开启监听调试

2204131649843589681908.png

在项目中下断点,执行单元测试就可以断下来了


最后提供一个自动识别项目来添加环境变量的脚本, 根据启动目录名称来添加对应的调试服务器域名

#!/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 "$@"



微信号:kelicom QQ群:215861553 紧急求助须知
点击更换验证码
Win32/PHP/JS/Android/Python