【发布时间】:2020-02-07 15:30:26
【问题描述】:
我使用 Docker 容器创建了一个 Yii2 应用程序,我想对其进行调试。使用零配置调试here 我可以轻松启动调试会话,只需激活“监听”图标并使用 .
调试工作正常,但我注意到调试时 IDE 出现了奇怪的行为。
我在frontend/index.php 的第 3 行放置了一个断点。正如预期的那样,当我显示页面时,断点被命中。
通过单击 F8,我可以跳过代码,但是当我到达第 17 行并单击 F7(进入)时,调试器似乎仍然通过继续执行代码来完成其工作(您可以在“框架”面板中注意到),但通常情况下,IDE 应该打开目标文件,并在代码中显示进度,但事实并非如此。
如果我继续单击 F8,“框架”面板上的文件和方法将不断变化,但 IDE 将显示的唯一文件是 index.php
我注意到的另一件事是“变量”面板中的警告:
远程文件路径
app.../BaseYii.php未映射到项目中的任何文件路径
我应该手动映射项目中的每个文件吗???希望不会……
这可能并不复杂,但我被卡住了。
有人知道吗?
这是我的服务器设置屏幕。
如何映射到项目根目录?
【问题讨论】:
-
不,您不需要映射每个文件(子文件夹将从父文件夹继承映射)。根据您的描述,听起来初始映射是在较低级别(
frontend文件夹)上完成的,而 Yii 代码位于其外部的文件夹中。如果是这样 - 只需手动修复映射 -Settings/Preferences | Language & Frameworks | PHP | Server- 如果不确定,请在此处发布您的屏幕截图。但总的来说——只要有一个项目根的映射——它几乎在所有情况下都能完成这项工作。 -
感谢 LazyOne。我已经添加了我的设置屏幕
-
只需将您的
C:\Users\Francois\Projects\myms-demo映射到/app- 应该就是这样。然后,您甚至可以删除/app/frontend/web的现有映射(因为它将从父级继承。 -
P.S.您的第一个屏幕截图和最后一个屏幕截图上的项目文件夹名称不同(
tadv与myms-demo).. 但我认为这些是 2 个不同的项目... -
对不起,这是我昨天写的程序中的旧图像。我会更新它以确保它不会混淆任何人。
标签: docker docker-compose phpstorm xdebug yii2-advanced-app