Метод setName
Метод setName класса Command задаёт имя консольной команды.
Первым параметром передаётся строка с именем команды. Именно по этому
имени команда вызывается из терминала через php bin/console.
Метод возвращает объект самой команды, что позволяет выстраивать цепочку
вызовов.
Синтаксис
public function setName(string $name): static
Пример
Давайте создадим команду и зададим ей имя через метод setName:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
class ArticleCommand extends Command
{
protected function configure(): void
{
$this->setName('app:article');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('hello');
return Command::SUCCESS;
}
}
?>
Теперь команду можно вызвать из терминала:
php bin/console app:article
Результат выполнения команды:
hello
Пример
Метод setName возвращает объект команды, поэтому имя можно задать
цепочкой вместе с другими настройками:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
class UserCommand extends Command
{
protected function configure(): void
{
$this
->setName('app:user')
->setDescription('User command');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('user');
return Command::SUCCESS;
}
}
?>
Результат выполнения команды:
php bin/console app:user
user
Пример
Имя команды может содержать пространство имён, разделённое двоеточием.
Давайте зададим имя 'app:article:show':
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
class ArticleShowCommand extends Command
{
protected function configure(): void
{
$this->setName('app:article:show');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('article');
return Command::SUCCESS;
}
}
?>
Результат выполнения команды:
php bin/console app:article:show
article
Смотрите также
-
класс
Command,
который является базой для всех консольных команд -
метод
configure,
который настраивает команду -
метод
setDescription,
который задаёт описание команды -
метод
execute,
который содержит логику выполнения команды