几天后我终于安装了xdebug 2.2.5并配置为使用phpStorm,但现在我有了第一个疑问。 php应用程序是使用laravel 4.2创建的,具有以下结构:
假设localhost/cool-app/foo
调用一些消耗大量资源(如ram和time)的函数。所以,我想调试应用程序的这一部分,但本节适用于经过身份验证的用户,然后当我尝试调试 localhost / cool-app / foo 的特定控制器时,调试器从不进入它,因为应用程序将请求重定向到/ login。 (看起来调试器被视为访客用户)
那么,当您需要调试仅针对特定访问进行过滤的应用程序部分时,如何处理此问题?也许您会建议我禁用身份验证过程,但我没有权限更改代码。
答案 0 :(得分:2)
您可以在PHPStorm中侦听调试连接,并可以从浏览器启动调试会话。
首先在PHPStorm中开始侦听调试连接:
然后生成调试书签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}}:
您也可以使用KCacheGrind用于Linux或WinCacheGrind用于Windows来分析探查器快照。
请注意,xdebug探查器在收集数据时可能会降低页面执行速度,因此如果在探查器处于活动状态时应用程序速度较慢,请不要惊慌。
答案 1 :(得分:0)
搜索引用我从laracast网站上发现了一个非常有用的视频:
此视频展示了如何具体解决我的问题。非常感谢你。