PhpStorm + Xdebug:如何调试嵌套CLI调用


PhpStorm + Xdebug: how to debug nested CLI call

我已经在PhpStorm中打开了PHP项目C:'project1,该项目执行来自另一个PHP项目C:'project2的PHP代码,在PhpStorm的另一个实例中打开。像这样:

// in project1:
exec('php ../project2/script.php');

当我在project1中开始调试时,断点被击中。我正试图设置其他项目,以便当project2/script.php中的代码执行时,其他PhpStorm中的断点也会被击中。


到目前为止,我尝试在project1中创建一个函数,如下所示:
function runCommand($cmd) {
    $env = $_SERVER;       
    if (isset($_SERVER["XDEBUG_CONFIG"])) {
        $env['XDEBUG_CONFIG'] = 'idekey=project2 remote_host=127.0.0.1 remote_port=9001';
    }
    $process = new Symfony'Process($cmd, null, $env);
    $process->run();
}

它的工作原理与OP中描述的完全一样,我只是忘记了在嵌套过程中,PhpStorm不自动配置远程调试,所以我不得不手动在php.ini中设置xdebug.remote_enable