Изменение команды по умолчанию

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

Изменение команды по умолчанию

Компонент Console будет всегда запускать 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
10
// 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();

Test the new default console command by running the following:

1
$ php application.php

Это отобразит следуюшую командную строку:

1
Привет. мир

Caution

Эта функция имеет ограничение: вы не можете перадать никакой аргумент или опцию команде по умолчанию, так как они будут игнорироваться.