Symfony2 を使用すると、開発者は独自のコマンドライン コマンドを作成できます。これらはコマンドラインから実行できますが、コントローラーからも実行できます。Symfony2 の公式ドキュメントによると、次のように実行できます。
protected function execute(InputInterface $input, OutputInterface $output)
{
$command = $this->getApplication()->find('demo:greet');
$arguments = array(
...
);
$input = new ArrayInput($arguments);
$returnCode = $command->run($input, $output);
}
ただし、この状況では、コマンドの実行が終了してリターン コードが返されるまで待ちます。
controller から、実行が完了するのを待たずにコマンドをバックグラウンドにフォークして実行するにはどうすればよいですか?
言い換えれば、同等のもの
$ nohup php app/console demo:greet &