我在运行Ubuntu的本地Vagrant实例上设置Xdebug。它按预期工作,我可以在我的应用程序中设置断点。
我有一个应用程序向内部API发出请求的场景。内部API位于同一服务器和相同的代码库上。
树插图
codebase/
app/
root
api/
root
该应用程序可以https://local.myapplication.com访问,API可以http://local.api.myapplication.com}在本地访问。
如果我现在在API的某些代码中设置断点,然后访问https://local.myapplication.com/some/action/that/triggers/the/api/code,只有在我没有为第一个应用程序初始化Xdebug会话时才触发断点,即我没有设置{{ 1}}查询参数。如果设置了,我的断点将被忽略。
这有一定的缺点。如果我在应用程序和API中有断点,那么我现在无法触发。我可以触发应用程序断点或API断点。
我在插件Sublime Text 3上使用https://github.com/martomo/SublimeTextXdebug。 XDEBUG_SESSION_START
中的我的Xdebug设置为:
php.ini
这可以解决吗?任何答案/评论都表示赞赏!
答案 0 :(得分:1)
两种选择。如果第一个(更容易)没有工作,第二个肯定会。
在php.ini中,将以下内容添加到xdebug设置中:
xdebug.remote_autostart = 1
您需要有两个单独的IDE /文本编辑器实例来监听xdebug - 每个实例位于不同的端口上。您可以将两个实例设置为在xdebug服务侦听不同端口时编辑同一项目。
例如:
制作你的内部API"在端口9001上运行xdebug,您只需在内部API"开始时执行以下操作即可:脚本:
ini_set('xdebug.remote_port', '9001');
答案 1 :(得分:0)
使用conditional breakpoints
。您可以使它们依赖于任何PHP代码。例如。为每个入口点设置一个常量并检查它。或者查看请求网址。