Створення додатку однієї команди

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

Створення додатку однієї команди

При створенні інструменту командного рядку, вам може не знадобитися надавати декілька команд. В такому випадку, передача назви команди кожний раз занадто виснажлива. На щастя, можна видалити цю необхідність, оголосивши додаток додатком однієї команди:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env php
<?php
require __DIR__.'/vendor/autoload.php';

use Symfony\Component\Console\Attribute\Argument;
use Symfony\Component\Console\Attribute\Option;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\SingleCommandApplication;

(new SingleCommandApplication())
    ->setName('My Super Command') // Optional
    ->setVersion('1.0.0') // Optional
    ->setCode(function (OutputInterface $output, #[Argument] string $foo = 'The directory', #[Option] string $bar = ''): int {
        // аргументи та опції виведення

        return 0;
    })
    ->run();

Ви все ще можете зареєструвати команду як звичайно:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env php
<?php
require __DIR__.'/vendor/autoload.php';

use Acme\Command\DefaultCommand;
use Symfony\Component\Console\Application;

$application = new Application('echo', '1.0.0');
$command = new DefaultCommand();

$application->add($command);

$application->setDefaultCommand($command->getName(), true);
$application->run();

Метод setDefaultCommand() приймає булеве значення в якості другого параметра. Якщ true, команда echo потім буде використовуватися завжди, без необхідності передачі її імені.