Компонент Console

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

Компонент Console

Компонент Console облегчает создание прекрасных и тестируемых интерфейсов командной строки.

Компонент Console позволяет вам создавать команды строки. Ваши консольные команды могут быть использованы для любого повторяющегося задания, например, cronjobs, импорта, или других фоновых заданий.

Установка

1
$ composer require symfony/console

Note

Если вы устанавливаете этот компонент вне приложения Symfony, вам нужно подключить файл vendor/autoload.php в вашем коде для включения механизма автозагрузки классов, предоставляемых Composer. Детальнее читайте в этой статье.

Создание консольного приложения

See also

Эта статья объясняет, как использовать функции Console в качестве независимого компонента в любом приложении PHP. Прочитайте статью Команды консоли, чтобы чтобы узнать о том, как использовать его в приложениях Symfony.

Для начала, вам нужно создать PHP-скрипт, чтобы определить консольное приложение:

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env php
<?php
// application.php

require __DIR__.'/vendor/autoload.php';

use Symfony\Component\Console\Application;

$application = new Application();

// ... зарегистрируйте команды

$application->run();

Далее, вы можете зарегистрировать команды, используя add():

1
2
// ...
$application->add(new GenerateAdminCommand());

Вы также можете регистрировать встроенные команды и определять их поведение благодаря методу Command::setCode():

1
2
3
4
5
6
7
8
// ...
$application->register('generate-admin')
    ->addArgument('username', InputArgument::REQUIRED)
    ->setCode(function (InputInterface $input, OutputInterface $output): int {
        // ...

        return Command::SUCCESS;
    });

Это полезно при создании приложения одной команды.

См. статью Команды консоли, чтобы узнать о том, как создавать команды.