我已经在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