2016-11-09 36 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中。