首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行调试-x调试和phpstorm

并行调试-x调试和phpstorm
EN

Stack Overflow用户
提问于 2014-06-30 19:43:57
回答 1查看 1.6K关注 0票数 1

我试着做并行调试。我在frontend.php和backend.php文件中使用frontend.php(约30分钟及以上):

frontend.php文件:

代码语言:javascript
复制
<?php

$personJson = file_get_contents('http://localhost:777/projects/debug-both/backend.php/backend.php');
$person = json_decode($personJson);

var_dump($person);

backend.php文件:

代码语言:javascript
复制
<?php

class Person {
    public $name;
    public $email;
}

$person = new Person();

$person->name = 'Something';
$person->email = 'something@something.com';

echo json_encode($person);

我使用零配置法。当我在带有调试会话的浏览器中启动前端文件时,将在PhpStorm调试会话中启动,但不能一行:

代码语言:javascript
复制
file_get_contents('http://localhost:777/projects/debug-both/backend.php/backend.php');

如教程中所示,转到backend.php文件(视频中为31:36)。

问:如何使它发挥作用?在这个视频中没有什么更多的东西,它似乎应该立即工作,但它没有。

我从phpinfo中包含了我的xdebug配置。

和PhpStorm中的x调试配置

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-01 09:43:17

1. Settings | PHP | Debug | Max simultaneous connections --应该超过1。你已经设置好了。

2. xdebug.remote_autostart应为1 / on。这将告诉xdebug尝试调试每一个请求,而不考虑调试cookie/参数。

这是需要的,因为您的第二个脚本将不会收到与原始脚本相同的cookie/参数(因为它在技术上是独立的请求)。

是的,此选项对于日常开发可能不方便,因为它将尝试调试每个请求,如果调试客户端不可用.您将看到脚本执行中大约1秒的延迟。

替代方法(在您的具体情况下)将在调用第二个脚本时向URL中添加xdebug参数(例如?XDEBUG_SESSION_START=1)。这将告诉debug调试此请求。例如:

代码语言:javascript
复制
file_get_contents('http://localhost:777/projects/debug-both/backend.php/backend.php?XDEBUG_SESSION_START=1');

如您所见,这种方法需要修改代码(请求的URL)。通常情况下,这是不想要的。

还有另一种选择,即通过添加xdebug_break();以编程方式设置断点。即使没有额外的params/cookie或remote_autostart设置,这也会触发调试器。

缺点是一样的:代码操作是必需的。好的一点--它应该比修改URL更容易做(+更容易阅读/理解正在发生的事情)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24497787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档