docker - PhpStorm调试器在调试时不会跳入目标php文件

标签 docker docker-compose phpstorm xdebug yii2-advanced-app

我已经使用要调试的Docker容器创建了一个Yii2应用程序。使用零配置调试here,通过简单地激活“侦听”图标并使用捕获外部通信,我能够轻松启动调试 session 。

enter image description here

调试工作正常,但是我注意到调试时IDE上有奇怪的行为。

我在frontend/index.php的第3行上放置了一个断点。不出所料,当我显示页面时,断点被击中。

enter image description here

通过单击F8,我可以遍历代码,但是当我到达第17行并单击F7(进入)时,似乎调试器仍然通过继续遍历代码来完成其工作(如您所注意到的那样) (“框架”面板),但是通常情况下,IDE应该打开目标文件,并在代码中显示进度,但不是。

如果我继续单击F8,“框架”面板上的文件和方法将不断更改,但IDE将显示的唯一文件是index.php。

enter image description here

我注意到的另一件事是“变量”面板中的警告:

Remote file path app.../BaseYii.php is not mapped to any file path in project



我应该手动映射项目中的每个文件吗???希望不是...

这可能并不复杂,但是我被卡住了。

有人有线索吗?

这是我的服务器设置屏幕。

enter image description here

如何映射到项目根目录?

最佳答案

Should I manually map every file in the project??? Hope not...



不,您不需要映射每个文件(子代将从父文件夹继承映射)。

根据您的描述,听起来好像初始映射是在较低级别上完成的(frontend文件夹),而Yii代码位于其外部的文件夹中。如果是这样,则只需在Settings/Preferences | Language & Frameworks | PHP | Servers处手动修复映射。

根据Servers屏幕截图,您可以将C:\Users\Francois\Projects\myms-demo(项目根文件夹)映射到/app,仅此而已。然后,您可以稍后删除/app/frontend/web的现有映射(因为它将从父级继承,因此是不必要的)。
C:\Users\Francois\Projects\myms-demo <--> /app

关于docker - PhpStorm调试器在调试时不会跳入目标php文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60116498/

相关文章:

docker - CentOS 7 Docker 镜像和语言环境编译

docker - 使用compose将容器部署到docker swarm:发布不允许发布其他属性

docker - Docker由于 Unresolved 错误而无法构建

docker - 如何在 docker-compose .env 文件中包含特殊字符(例如 '=' )作为变量值的一部分?

phpstorm - 在 PhpStorm 的 HTML 标签中禁用样式参数内容的隐藏

php - 使用 PHPDoc @property 和 @method for $this->stdout->styles 解决 PhpStorm 魔术方法和属性警告

visual-studio - 在单独的层中复制多个项目文件还是在创建Docker镜像时一次性复制多个项目文件更好?

docker-compose 以 root 身份执行卷脚本

elasticsearch - boot2docker在本地主机上访问elasticsearch

php - 错误 : The path to the driver executable must be set by the webdriver. gecko.driver 系统属性