Класс Output
Класс Output отвечает за вывод информации в консоль
в командах Symfony. Он позволяет записывать строки,
управлять переносами строк и проверять текущий уровень
детализации. Объект Output доступен внутри метода
execute команды.
Синтаксис
$output->writeln(string $message);
$output->write(string $message);
Пример
Давайте выведем строку через метод writeln:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
use SymfonyComponentConsoleAttributeAsCommand;
#[AsCommand(name: 'app:article')]
class ArticleCommand extends Command
{
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('hello');
return Command::SUCCESS;
}
}
?>
Результат выполнения команды:
hello
Пример
Давайте выведем массив строк с помощью метода writeln:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
use SymfonyComponentConsoleAttributeAsCommand;
#[AsCommand(name: 'app:article')]
class ArticleCommand extends Command
{
protected function execute(InputInterface $input, OutputInterface $output): int
{
$arr = ['article 1', 'article 2', 'article 3'];
foreach ($arr as $elem) {
$output->writeln($elem);
}
return Command::SUCCESS;
}
}
?>
Результат выполнения команды:
article 1
article 2
article 3
Пример
Давайте проверим уровень детализации через метод isVerbose:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
use SymfonyComponentConsoleAttributeAsCommand;
#[AsCommand(name: 'app:article')]
class ArticleCommand extends Command
{
protected function execute(InputInterface $input, OutputInterface $output): int
{
if ($output->isVerbose()) {
$output->writeln('verbose mode');
}
return Command::SUCCESS;
}
}
?>
Результат выполнения команды с флагом -v:
php bin/console app:article -v
Результат выполнения кода:
verbose mode
Смотрите также
-
класс
SymfonyStyle,
который расширяет возможности вывода -
метод
writeln,
который выводит строку с переносом -
метод
write,
который выводит строку без переноса -
метод
setVerbosity,
который задаёт уровень детализации