php - 如何在 Symfony 控制台中禁用命令的输出?

标签 php symfony magento symfony-console

我编写了一个模块,实际上是 Magento 2 中的一个自定义命令。很明显,Magento 2 控制台应用程序自豪地由 Symfony 控制台 提供支持。我关心的是如何为指定命令禁用 $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());

关于php - 如何在 Symfony 控制台中禁用命令的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36733561/

相关文章:

php - Yii 迁移问题

c# - 在 C# 中连接到 phpmyadmin Web 服务器 xampp

javascript - Google Apps 脚本 - 使用来自 html 的 png 自动发送电子邮件

security - 如何使用 Symfony 2 制作如下所示的权限系统?

php - symfony 响应与 json ajax

javascript - 如何覆盖 Prototype.js 类中声明的 javascript 函数

javascript - 平滑滑动背景图片

symfony - 向经过身份验证的 oAuth2 用户添加范围

php - Magento: Mage::registry ('current_product' ) 高效?

javascript - 为什么 jQuery 代码在 Magento 中不起作用