laravel - xdebug、PhpStorm 和 Laravel 3/mod_rewrite 未命中断点

标签 laravel xdebug phpstorm laravel-3

我非常绝望并且没有想法:

我已经为 Laravel 3 项目配置了 xdebug 和 PhpStorm。在 Mac OS X Apache 上本地运行项目,因此 PhpStorm 和 Web 应用程序在同一台机器上运行。配置一个虚拟主机,以便 localhost.lt 指向 Laravel 的公共(public)目录。

php.ini 中的相关 xdebug 条目:

zend_extension = /usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
[xdebug]
xdebug.idekey="PHPSTORM"
xdebug.remote_enable=1
xdebug.profiler_enable=1
xdebug.remote_log=/var/log/xdebug_remote.log
xdebug.remote_connect_back=1

确认已加载扩展程序。

设置没有任何路径映射的 PHP Web 应用程序调试/运行配置,因为没有任何符号链接(symbolic link),并且 Web 服务器和 PhpStorm 上的文件夹完全相同(因为 Web 服务器在同一台机器上)。

从 IDE 通过“调试”启动时,xdebug_remote.log 正确显示了我们在应用程序/库中的文件之一中设置的断点:
<- breakpoint_set -i 5 -t line -f
file:///Users/RalfR/src/livetime/application/libraries/LiveTime.php -n 676
->
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="5" id="9230016"></response>

但是,当我们单击调用 LiveTime.php 库中的函数的链接时,不会命中断点。日志显示:
<- stack_get -i 6 -> 
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stack_get" transaction_id="6"><stack where="{main}" level="0" type="file" filename="file:///Users/RalfR/src/livetime/public/index.php" lineno="14"></stack></response>

<- run -i 7 -> 
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="7" status="stopping" reason="ok"></response>

<- run -i 8
Log closed at 2013-04-22 21:03:57

与许多框架一样,Laravel 使用 .htaccess mod_rewrite 通过 public/index.php 来管道所有内容。这可能是 PhpStorm/xdebug 没有在 application/libraries/LiveTime.php 中捕获断点的原因,因为 xdebug 似乎从未执行 LiveTime.php 脚本?

如果是这样,我们该如何解决这个问题?

最佳答案

对于使用 Netbeans 和 Laravel 的用户,您需要将“Web Root”设置为您的公共(public)文件夹,该文件夹位于您的项目->Properties->Sources 中。

Edit web root in Netbeans

关于laravel - xdebug、PhpStorm 和 Laravel 3/mod_rewrite 未命中断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16157276/

相关文章:

php - Xdebug 探查器不工作?

mysql - Docker 构建失败

namespaces - PhpStorm 无法识别文件路径

php - 如何在Laravel中查看完整的错误消息?

php - NetBeans 调试不适用于 phpunit 测试

laravel - 创建新字段的迁移时,将数据从一个字段复制到另一个字段的最佳方法是什么?

使用 Contao CMS 项目时,PhpStorm 变得非常慢并且占用大量资源

phpstorm - 如何使PhpStorm自动突出显示选择

php - 为 Laravel 8 路由定义命名空间

laravel - 有什么方法可以加快 ffmpeg 处理时间