我编写了一个模块,实际上是Magento 2中的自定义命令。显然,Magento 2控制台应用程序很自豪地由 Symfony控制台提供支持。我的注意事项是如何禁用Imports System.Collections.ObjectModel
Class MainWindow
Public Sub New()
InitializeComponent()
Rectangles = New ObservableCollection(Of RectangleGeometry)
Rectangles.Add(New RectangleGeometry(New Rect(50, 50, 500, 100)))
Rectangles.Add(New RectangleGeometry(New Rect(50, 50, 100, 500)))
Rectangles.Add(New RectangleGeometry(New Rect(200, 200, 100, 100)))
Rectangles.Add(New RectangleGeometry(New Rect(400, 400, 100, 100)))
Rectangles.Add(New RectangleGeometry(New Rect(20, 20, 100, 100)))
End Sub
Public Property Rectangles As ObservableCollection(Of RectangleGeometry)
End Class
对指定命令的输出?
例如:
$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....
设置为true,此命令--quiet
的输出仍然存在。
有什么想法吗?
答案 0 :(得分:4)
正如评论中所回答的那样......虽然与@toooni的回答几乎完全相同。
您可以插入NullOutput
而不是插入命令提供的实际输出对象。
use Symfony\Component\Console\Output\NullOutput;
$setupUpgradeCommand->run($setupUpgradeInput, new NullOutput());
答案 1 :(得分:1)
您可以使用BufferedOutput:
use Symfony\Component\Console\Output\BufferedOutput;
...
$setupUpgradeCommand->run($setupUpgradeInput, new BufferedOutput());
此处描述了用法: http://symfony.com/doc/current/cookbook/console/command_in_controller.html
答案 2 :(得分:1)
另一个选择是使用记录器,如果你要求,可以在你的CLI上使用它。你可以在这篇(现在很旧的)新闻帖子中阅读更多相关信息:http://symfony.com/blog/new-in-symfony-2-4-show-logs-in-console
一个完整的示例,您甚至可以格式化从帖子中获取的输出:
services:
my_formatter:
class: Symfony\Bridge\Monolog\Formatter\ConsoleFormatter
arguments:
- "[%%datetime%%] %%start_tag%%%%message%%%%end_tag%% (%%level_name%%) %%context%% %%extra%%\n"
monolog:
handlers:
console:
type: console
verbosity_levels:
VERBOSITY_NORMAL: NOTICE
channels: my_channel
formatter: my_formatter
您可以在此处找到文档:http://symfony.com/doc/current/cookbook/logging/monolog.html