Параметр aliases
Параметр aliases атрибута AsCommand
задаёт список альтернативных имён для консольной
команды. Основное имя передаётся первым параметром
атрибута, а через aliases можно указать одно
или несколько дополнительных имён, по которым
команда также будет доступна.
Значением параметра является массив строк. Каждая строка - это отдельное альтернативное имя команды. Пользователь может вызывать команду как по основному имени, так и по любому из псевдонимов.
Синтаксис
#[AsCommand(name, aliases: [alias1, alias2])]
Пример
Давайте создадим команду с основным именем
'app:user' и псевдонимом 'app:u':
<?php
namespace AppCommand;
use SymfonyComponentConsoleAttributeAsCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
#[AsCommand('app:user', aliases: ['app:u'])]
class UserCommand extends Command
{
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('hello');
return Command::SUCCESS;
}
}
?>
Теперь команду можно вызвать двумя способами:
php bin/console app:user
php bin/console app:u
Результат выполнения обоих вызовов:
hello
Пример
Давайте создадим команду с несколькими псевдонимами
'app:article', 'app:a' и 'app:art':
<?php
namespace AppCommand;
use SymfonyComponentConsoleAttributeAsCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
#[AsCommand('app:article', aliases: ['app:a', 'app:art'])]
class ArticleCommand extends Command
{
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('article');
return Command::SUCCESS;
}
}
?>
Проверим доступные имена через команду list:
php bin/console list app
Результат выполнения команды:
app:a app:article
app:art app:article
app:article app:article
Любой из трёх вызовов выполнит один и тот же код:
php bin/console app:a
php bin/console app:art
php bin/console app:article
Результат выполнения:
article
Пример
Давайте создадим команду с описанием и псевдонимом, а затем выведем справку по псевдониму:
<?php
namespace AppCommand;
use SymfonyComponentConsoleAttributeAsCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
#[AsCommand(
'app:greet',
'Greets the user',
aliases: ['app:g']
)]
class GreetCommand extends Command
{
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('hello user');
return Command::SUCCESS;
}
}
?>
Вызовем справку по псевдониму 'app:g':
Результат выполнения команды:
Description:
Greets the user
Usage:
app:greet
app:g
Смотрите также
-
атрибут
AsCommand,
который помечает класс как консольную команду -
параметр
name,
который задаёт основное имя команды -
параметр
description,
который задаёт описание команды -
команда
list,
которая выводит список доступных команд