を抑制する。は、私はsymfonyのコンソールコンポーネントを使用して、簡単なコンソールアプリケーションを持っている別のコマンド内のSymfonyコンソールコマンドを呼び出し、出力
私は2つのコマンド(例えば、cmdOne
とcmdTwo
)があり、それらは独立して簡単に呼び出すことができます。
$ myApp.php cmdOne
$ myApp.php cmdTwo
どちらのコマンドは、私は簡単に-q
オプションを発行することでミュートすることができ、出力のかなりの量を、持っています。
はcmdTwo
に電話しますが、cmdTwo
を静かにしたいと思います。私は何か狂ったことをしようとはしていないが、私はドキュメントを読んでいるにもかかわらず、どこにでも行くのに苦労している。
はここに私のサンプルコードですこれまでのところ(このスニペットはcmdOne->execute()
内に含まれます):
$command = $this->getApplication()->find('cmdTwo');
$input = new ArrayInput(array(
'command' => 'cmdTwo',
'-q' => true
));
$returnCode = $command->run($input, $output);
これは、コードコマンドの実行のように、細かい動作しますが、(cmdTwo
によって生成された)コンソール上の出力がありますどの私は見せたくありません。それは何かを明らかに(すなわちDEVによって作成されていない)「予約」だ、または私が行方不明ですので
はできません-q
オプションを指定していますか?それは、出力を受け入れ、静かにそれをドロップ -
、それに+1を私にビート! – bishop
@cerebriform:それはより多くのそれはスロー・スタート時間とプロジェクトを再インデックス(見つけるために正確なクラス名);-P – zerkms
恐ろしいをphpstormに起因する可能性よりも、2分かかりました!それは治療をしてくれます、ありがとうございました。今ここにカーブボールがあります: 'cmdTwo'が失敗すれば、出力をキャッチする賢明な方法がありますか?現時点では、直接実行するとコンソールに直接エラーが表示されます。特定のエラーについて特定の終了コードを返してから、 'cmdOne'で処理する必要がありますか?それとも私は協力していない脂っこい画面とタブレット上でよ、...これは別のSO全く疑問 – HelloPablo