并行调试-xdebug和phpstorm
我尝试进行并行调试。我对frontend.php和backend.php文件使用(大约30分钟或更长时间): frontend.php文件:并行调试-xdebug和phpstorm,php,debugging,xdebug,phpstorm,remote-debugging,Php,Debugging,Xdebug,Phpstorm,Remote Debugging,我尝试进行并行调试。我对frontend.php和backend.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); <?php c
<?php
$personJson = file_get_contents('http://localhost:777/projects/debug-both/backend.php/backend.php');
$person = json_decode($personJson);
var_dump($person);
<?php
class Person {
public $name;
public $email;
}
$person = new Person();
$person->name = 'Something';
$person->email = 'something@something.com';
echo json_encode($person);
转到教程中的backend.php
文件(视频中的31:36)
问题:如何让它工作?在这段视频中,没有什么了,它似乎应该马上工作,但它没有
我将phpinfo中的xdebug配置和PhpStorm中的xdebug配置包括在内。
设置| PHP |调试|最大同时连接数
--应大于1。你已经准备好了
2.xdebug.remote\u autostart
应该是1
/开启的。这将告诉xdebug尝试调试每个请求,而不考虑调试cookie/参数
这是必需的,因为您的第二个脚本将不会收到与原始脚本相同的cookie/参数(因为这在技术上是单独的请求)
是的,此选项可能不便于日常开发,因为它将尝试调试每个请求,如果调试客户端不可用。。。您将看到脚本执行延迟约1秒
另一种方法是在调用第二个脚本时,将xdebug GET参数(例如?xdebug_SESSION_START=1
)添加到URL中。这将告诉xdebug调试此请求。例如:
file_get_contents('http://localhost:777/projects/debug-both/backend.php/backend.php?XDEBUG_SESSION_START=1');
正如您所见,这种方法需要修改您的代码(请求的URL)。这通常是不可取的
另一种选择是通过添加xdebug_break()以编程方式设置断点代码>。即使没有这些额外的参数/cookie或remote\u autostart
设置,也会触发调试器
缺点是一样的:代码操作是必需的。好的一点是,与更改URL相比,它应该更容易操作(+更容易阅读/理解正在发生的事情)。1。Settings | PHP | Debug | Max synchronized connections
应该大于1。你已经准备好了
2.xdebug.remote\u autostart
应该是1
/开启的。这将告诉xdebug尝试调试每个请求,而不考虑调试cookie/参数
这是必需的,因为您的第二个脚本将不会收到与原始脚本相同的cookie/参数(因为这在技术上是单独的请求)
是的,此选项可能不便于日常开发,因为它将尝试调试每个请求,如果调试客户端不可用。。。您将看到脚本执行延迟约1秒
另一种方法是在调用第二个脚本时,将xdebug GET参数(例如?xdebug_SESSION_START=1
)添加到URL中。这将告诉xdebug调试此请求。例如:
file_get_contents('http://localhost:777/projects/debug-both/backend.php/backend.php?XDEBUG_SESSION_START=1');
正如您所见,这种方法需要修改您的代码(请求的URL)。这通常是不可取的
另一种选择是通过添加xdebug_break()以编程方式设置断点代码>。即使没有这些额外的参数/cookie或remote\u autostart
设置,也会触发调试器
缺点是一样的:代码操作是必需的。好的一点是,与更改URL相比,这应该更容易做到(+更容易阅读/理解正在发生的事情)。。。您正试图同时调试多个请求(第一个脚本调用第二个,您也想调试它)。对吗?如果是的话——显示您的xdebug设置(phpinfo()输出的xdebug部分)以及“settings | PHP | Debug”的屏幕截图@LazyOne感谢您的关注。这正是我想要实现的。我在问题中添加了截图,所以。。您正试图同时调试多个请求(第一个脚本调用第二个,您也想调试它)。对吗?如果是的话——显示您的xdebug设置(phpinfo()输出的xdebug部分)以及“settings | PHP | Debug”的屏幕截图@LazyOne感谢您的关注。这正是我想要实现的。我在问题中添加了截图,非常感谢您提供了非常详细的答案。就我而言,更改xdebug.remote_autostart是我所需要的。非常感谢您提供非常详细的答案。就我而言,更改xdebug.remote_autostart是我所需要的。