Параметр name атрибута AsCommand
Параметр name атрибута AsCommand задаёт имя консольной команды. Именно это имя указывается в терминале при запуске команды через php bin/console. Параметр передаётся первым аргументом и является обязательным. Если имя не указано, Symfony выбросит исключение при попытке зарегистрировать команду.
Синтаксис
#[AsCommand(name: name)]
Пример
Давайте создадим команду с именем 'app:greet':
<?php
namespace AppCommand;
use SymfonyComponentConsoleAttributeAsCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
#[AsCommand(name: 'app:greet')]
class GreetCommand extends Command
{
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('hello');
return Command::SUCCESS;
}
}
?>
Запустим команду в терминале:
php bin/console app:greet
Результат выполнения команды:
hello
Пример
Давайте используем пространство имён в имени команды, чтобы сгруппировать команды:
<?php
namespace AppCommand;
use SymfonyComponentConsoleAttributeAsCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
#[AsCommand(name: 'app:user:create')]
class UserCreateCommand extends Command
{
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('user created');
return Command::SUCCESS;
}
}
?>
Запустим команду в терминале:
php bin/console app:user:create
Результат выполнения команды:
user created
Смотрите также
-
атрибут
AsCommand,
который регистрирует консольную команду -
параметр
description,
который задаёт описание команды -
параметр
aliases,
который задаёт псевдонимы команды -
команда
list,
которая выводит список всех доступных команд