我写了一个模块,实际上是Magento 2中的一个自定义命令。Magento 2控制台应用程序显然是由Symfony Console驱动的。我担心的是如何禁用$output
指定命令的输出?
例如:
$setupUpgradeCommand = $this->getApplication()->find('setup:upgrade');
$setupUpgradeArguments = array(
'command' => 'setup:upgrade',
'--quiet' => true,
);
$setupUpgradeInput = new ArrayInput($setupUpgradeArguments);
$start = microtime(true);
$output->writeln('<info>Start upgrading module schemas...</info>');
$setupUpgradeCommand->run($setupUpgradeInput, $output);
$output->writeln('...............................<info>OK</info>');
// My long logic-code start from here....
不幸的是,即使我设置--quiet
为true,该命令的输出setup:upgrade
仍然存在。
有任何想法吗?
如评论中的回答..尽管与@toooni的回答几乎完全相同。
您可以插入NullOutput
而不是插入命令提供的实际输出对象。
use Symfony\Component\Console\Output\NullOutput;
$setupUpgradeCommand->run($setupUpgradeInput, new NullOutput());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句