2016-11-09 62 views
0

我已经在PhpStorm中打开了PHP项目C:\project1,该项目从另一个PHP项目C:\project2执行PHP代码,在另一个PhpStorm实例中打开。这样的事情:PhpStorm + Xdebug:如何调试嵌套CLI调用

// 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(); 
} 

更无须欢喜,在项目2断点未命中。

回答

1

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