PhpStorm调试器在调试时不会在目标php文件中跳转

问题描述 投票:0回答:1

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

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

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

远程文件路径app.../BaseYii.php未映射到项目中的任何文件路径

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

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

有人知道吗?

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

enter image description here

如何映射到项目根目录?

docker docker-compose phpstorm xdebug yii2-advanced-app
1个回答
0
投票

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

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


根据您的描述,听起来好像初始映射是在较低级别(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
© www.soinside.com 2019 - 2024. All rights reserved.