我已经使用要调试的Docker容器创建了一个Yii2应用程序。使用零配置调试here,通过简单地激活“侦听”图标并使用捕获外部通信,我能够轻松启动调试 session 。
调试工作正常,但是我注意到调试时IDE上有奇怪的行为。
我在frontend/index.php
的第3行上放置了一个断点。不出所料,当我显示页面时,断点被击中。
通过单击F8,我可以遍历代码,但是当我到达第17行并单击F7(进入)时,似乎调试器仍然通过继续遍历代码来完成其工作(如您所注意到的那样) (“框架”面板),但是通常情况下,IDE应该打开目标文件,并在代码中显示进度,但不是。
如果我继续单击F8,“框架”面板上的文件和方法将不断更改,但IDE将显示的唯一文件是index.php。
我注意到的另一件事是“变量”面板中的警告:
Remote file path
app.../BaseYii.php
is not mapped to any file path in project
我应该手动映射项目中的每个文件吗???希望不是...
这可能并不复杂,但是我被卡住了。
有人有线索吗?
这是我的服务器设置屏幕。
如何映射到项目根目录?
最佳答案
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/