【发布时间】:2017-08-15 19:17:38
【问题描述】:
如何运行命令 (app/console execute:my:command) 通过新流程在服务中?
我试试这个:
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;
$process = new Process(
'app/console execute:my:command'
);
$process->start();
但是什么都没有发生... 如果我通过终端手动调用它,它可以工作:
app/console execute:my:command
我做错了什么?
编辑 - 解决方案:我们需要编写整个路径。就我而言:
($this->kernelRootDir is : %kernel.root_dir%)
$processString = sprintf(
'php %s/../app/console %s %s',
$this->kernelRootDir,
self::MY_COMMAND,
$myArgument
);
$process = new Process($processString);
$process->start();
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
【问题讨论】:
-
您是否尝试在 app/console 后面添加 PHP cli 的路径?
标签: php symfony process console command