Зміна команди за замовчуванням

Дата оновлення перекладу 2023-08-21

Зміна команди за замовчуванням

Компонент Консоль завжди запускатиме ListCommand, якщо не передано ніякої назви команди. Для того, щоб змінити команду за замовчуванням, вам просто потрібно передати назву команди методу setDefaultCommand():

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace Acme\Console\Command;

use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

#[AsCommand(name: 'hello:world')]
class HelloWorldCommand extends Command
{
    protected function configure(): void
    {
        $this->setDescription('Outputs "Hello World"');
    }

    protected function execute(InputInterface $input, OutputInterface $output): int
    {
        $output->writeln('Hello World');

        return Command::SUCCESS;
    }
}

Запуск додатку та зміна команди за замовчуванням:

1
2
3
4
5
6
7
8
9
// application.php
use Acme\Console\Command\HelloWorldCommand;
use Symfony\Component\Console\Application;

$command = new HelloWorldCommand();
$application = new Application();
$application->add($command);
$application->setDefaultCommand($command->getName());
$application->run();

Простестуйте нову команду консолі за замовчуванням, виконавши наступне:

1
$ php application.php

Це відобразить наступний командний рядок:

1
Hello World

Caution

Ця функція має обмеження: ви не можете передати ніякий аргумент або опцію команді за замовчуванням, так як вони ігноруватимуться.