【问题标题】:Unable to hit breakpoints outside of Laravel's index.php无法在 Laravel 的 index.php 之外命中断点
【发布时间】:2018-09-06 09:58:39
【问题描述】:

我使用 Laravel v5.6.7、php/php-fpm v7.2.3、nginx v1.12.2 和 xdebug v2.6.0 在 Linux (Archlinux) 上工作。

我的网站在本地运行。
我为 Firefox 安装了附加的 Xdebug 助手。

我设法将 Xdebug、PhpStorm 配置为在 index.php 文件上打断点并且它可以工作。但是其他断点(index.php 之外)都没有命中,我在控制器和模型中放了一些。

如果我在控制器或模型中使用xdebug_break(),则执行会在下一个代码行中停止。

我也尝试过使用 VS Code,但我遇到了同样的问题。

有人设法在 Laravel 项目中调试控制器或模型 php 代码吗?

这是我的设置:

xdebug.ini

zend_extension=xdebug.so
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9123
xdebug.remote_handler=dbgp
xdebug.remote_autostart=1

PhpStorm:

  • Xdebug 端口:9123
  • 没有配置映射,因为我的 nginx 服务器在本地运行

编辑:
我尝试在 Windows 上使用 WAMP v3.1.0、PHP v7.1.9、Xdebug v2.5.5、Phpstorm 和 VScode。不幸的是,我的行为与 Linux 相同。
下面是断点和设置的截图:

【问题讨论】:

  • 请提供屏幕截图(您如何调试;断点在哪里等)或更好的截屏视频,以及 xdebug 日志。我在调试本地 Laravel 项目(PHP 7.0-7.2;Xdebug 2.6;IIS;Windows 10;PhpStorm)方面没有问题——无论是 CLI 命令(工匠)还是网页。必须是一些设置或您尝试调试的方式。
  • 我已经用 PHPstorm 和 Apache 服务器做到了这一点,我知道你不能使用断点并且必须使用 xdebug_break() 的唯一地方是刀片视图,但它是有道理的,因为不是视图而是执行的编译文件。
  • PhpStorm 屏幕截图显示您使用的是端口 9000,而不是端口 9123。这是故意的吗?另外,PhpStorm 项目是位于 web 根目录下,还是其他目录?
  • 另外,尝试在实际上有一些语句的行上设置断点 - Xdebug 不会在只有大括号的行处停止。
  • 正如 Eugene Morozov 所说的。 xdebug 端口可能没问题,因为它是另一台计算机/操作系统,并且都是本地的(因此无需更改 xdebug 端口,因为 php-pfm)。但是断点——只有第一个是可以的(安全的)。其他的很可能根本不会受到影响(由于 PHP 生成字节码的方式以及 xdebug 可能中断的地方)。

标签: php laravel debugging phpstorm xdebug


【解决方案1】:

与 Visual Studio 和 C# 不同,不能在大括号上添加断点。
IDE 中没有任何警告,但永远不会命中这些断点。
只需将它们移到下一行,用一个真实的语句使它们可点击。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 2013-03-08
    • 2011-04-16
    • 2011-02-28
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    相关资源
    最近更新 更多