Метод setAutoExit
Метод setAutoExit класса Application включает или выключает автоматическое завершение приложения после выполнения команды. Первым параметром передаётся логическое значение: true включает автоматический выход, false - выключает. По умолчанию автоматический выход включён.
Когда автоматический выход включён, после выполнения команды приложение завершает работу и возвращает код завершения. Если выключить эту опцию, приложение продолжит работу после выполнения команды, что удобно при тестировании или при выполнении нескольких команд подряд в одном процессе.
Синтаксис
public function setAutoExit(bool $boolean): void
Пример
Давайте создадим приложение и выключим автоматический выход:
<?php
namespace AppCommand;
use SymfonyComponentConsoleApplication;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
class ArticleCommand extends Command
{
protected static $defaultName = 'app:article';
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('article');
return Command::SUCCESS;
}
}
$app = new Application();
$app->add(new ArticleCommand());
$app->setAutoExit(false);
$input = new ArrayInput(['command' => 'app:article']);
$app->run($input);
?>
Результат выполнения кода:
article
Пример
Давайте включим автоматический выход обратно:
<?php
namespace AppCommand;
use SymfonyComponentConsoleApplication;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputArrayInput;
$app = new Application();
$app->add(new ArticleCommand());
$app->setAutoExit(false);
$app->setAutoExit(true);
$input = new ArrayInput(['command' => 'app:article']);
$app->run($input);
?>
Результат выполнения кода:
article
Смотрите также
-
класс
Application,
который управляет консольным приложением -
метод
run,
который запускает выполнение команды -
метод
add,
который добавляет команду в приложение -
метод
find,
который ищет команду по имени