我需要用进程组件执行许多命令。
$commands = [
["mkdir", "-p", path)],
["cd", path],
["rm", "-f", $archiveName, $sqlDbName . '.sql'],
[$this->dumpCommand($sqlDbName)],
["tar", "zcfP", $archiveName, $sqlDbName . '.sql'],
["rm", "-f", $sqlDbName . ".sql"],
];
foreach ($commands as $command) {
$process = new Process($command);
$process->run();
return $process->getOutput();
}
字符串
我认为只有第一个命令起作用。我没有错误。有人知道为什么吗?
1条答案
按热度按时间lx0bsm1f1#
当你在函数中使用的循环中使用return时,循环就被破坏了。在你的代码中,代码一直在运行,直到返回(一次),然后返回输出并停止迭代。
你应该删除
return $process->getOutput();
来处理所有命令.