使用xdebug调试未经授权的网站部分

时间:2014-10-24 20:09:18

标签: php laravel-4 phpstorm xdebug

几天后我终于安装了xdebug 2.2.5并配置为使用phpStorm,但现在我有了第一个疑问。 php应用程序是使用laravel 4.2创建的,具有以下结构:

  1. localhost / cool-app / login :用户身份验证表单
  2. localhost / cool-app :经过身份验证的用户的信息中心
  3. localhost / cool-app / foo :经过身份验证的用户的另一部分
  4. 假设localhost/cool-app/foo调用一些消耗大量资源(如ram和time)的函数。所以,我想调试应用程序的这一部分,但本节适用于经过身份验证的用户,然后当我尝试调试 localhost / cool-app / foo 的特定控制器时,调试器从不进入它,因为应用程序将请求重定向到/ login。 (看起来调试器被视为访客用户)

    那么,当您需要调试仅针对特定访问进行过滤的应用程序部分时,如何处理此问题?也许您会建议我禁用身份验证过程,但我没有权限更改代码。

2 个答案:

答案 0 :(得分:2)

您可以在PHPStorm中侦听调试连接,并可以从浏览器启动调试会话。

首先在PHPStorm中开始侦听调试连接:

PHPStorm Listen To Debug Connections

然后生成调试书签here。他们需要从您的浏览器启动调试会话。将它们拖到书签栏以便于访问:

enter image description here

然后在您的浏览器中启动应用程序并导航到您要测试的URL(如果您需要访问受保护区域,则需要登录,这样您将创建调试所需的会话)。当你想开始调试时,只需点击Debug this page书签,你就应该好了。

另外,请确保您已在xdebug.remote_enable=1文件中启用了php.ini,且xdebug.remote_port与PHPStorm配置中的9000匹配(默认情况下应为php.ini)。

修改

要使用分析器,请执行以下操作。确保您已在xdebug.profiler_enable = 1 xdebug.profiler_output_dir = /path/to/profiler/output 中配置了xdebug探查器设置:

Start profiler

在浏览器中,转到要分析的页面,然后单击Stop profiler,然后重新刷新页面,然后单击cachegrind。您现在应该在为profiler_output_dir指定的目录中有一个cachegrind文件。

要使用PHPStorm分析Tool > Analyze Xdebug Profiler Snapshot...个文件,您只需转到{{1}}:

enter image description here

您也可以使用KCacheGrind用于Linux或WinCacheGrind用于Windows来分析探查器快照。

请注意,xdebug探查器在收集数据时可能会降低页面执行速度,因此如果在探查器处于活动状态时应用程序速度较慢,请不要惊慌。

答案 1 :(得分:0)

搜索引用我从laracast网站上发现了一个非常有用的视频:

此视频展示了如何具体解决我的问题。非常感谢你。