我试着做并行调试。我在frontend.php和backend.php文件中使用frontend.php(约30分钟及以上):
frontend.php文件:
<?php
$personJson = file_get_contents('http://localhost:777/projects/debug-both/backend.php/backend.php');
$person = json_decode($personJson);
var_dump($person);backend.php文件:
<?php
class Person {
public $name;
public $email;
}
$person = new Person();
$person->name = 'Something';
$person->email = 'something@something.com';
echo json_encode($person);我使用零配置法。当我在带有调试会话的浏览器中启动前端文件时,将在PhpStorm调试会话中启动,但不能一行:
file_get_contents('http://localhost:777/projects/debug-both/backend.php/backend.php');如教程中所示,转到backend.php文件(视频中为31:36)。
问:如何使它发挥作用?在这个视频中没有什么更多的东西,它似乎应该立即工作,但它没有。
我从phpinfo中包含了我的xdebug配置。

和PhpStorm中的x调试配置

发布于 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调试此请求。例如:
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更容易做(+更容易阅读/理解正在发生的事情)。
https://stackoverflow.com/questions/24497787
复制相似问题