Toa*_*yen 3 php magento symfony symfony-console
我编写了一个模块,实际上是 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....
Run Code Online (Sandbox Code Playgroud)
不幸的是,即使我设置--quiet为 true,此命令的输出setup:upgrade仍然存在。
有任何想法吗?
正如在评论中回答的那样......尽管与@toooni 的回答几乎完全相同。
您可以插入NullOutput而不是插入命令提供的实际输出对象。
use Symfony\Component\Console\Output\NullOutput;
$setupUpgradeCommand->run($setupUpgradeInput, new NullOutput());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2337 次 |
| 最近记录: |