РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1296 of 1361 menu

Метод add класса Application

Метод add класса Application добавляет новую команду в консольное приложение. Первым параметром передаётся объект команды, реализующий интерфейс Command. После регистрации команда становится доступной для вызова через терминал.

Синтаксис

$res = $application->add(Command $command);

Метод возвращает ссылку на текущий объект Application, что позволяет выстраивать цепочку вызовов.

Пример

Давайте создадим простую команду и добавим её в приложение:

<?php namespace AppCommand; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; class HelloCommand extends Command { protected static $defaultName = 'app:hello'; protected function execute(InputInterface $input, OutputInterface $output): int { $output->writeln('hello'); return Command::SUCCESS; } } ?>

Теперь зарегистрируем эту команду в объекте Application:

<?php use AppCommandHelloCommand; use SymfonyComponentConsoleApplication; $application = new Application(); $application->add(new HelloCommand()); $application->run(); ?>

Результат выполнения команды php bin/console app:hello:

hello

Пример

Давайте добавим несколько команд и проверим их наличие через метод has:

<?php use AppCommandHelloCommand; use AppCommandUserCommand; use SymfonyComponentConsoleApplication; $application = new Application(); $application->add(new HelloCommand()); $application->add(new UserCommand()); var_dump($application->has('app:hello')); var_dump($application->has('app:user')); ?>

Результат выполнения кода:

bool(true) bool(true)

Пример

Давайте получим команду из приложения и запустим её через метод run:

<?php use AppCommandHelloCommand; use SymfonyComponentConsoleApplication; use SymfonyComponentConsoleInputArrayInput; use SymfonyComponentConsoleOutputConsoleOutput; $application = new Application(); $application->add(new HelloCommand()); $command = $application->find('app:hello'); $input = new ArrayInput([]); $output = new ConsoleOutput(); $command->run($input, $output); ?>

Результат выполнения кода:

hello

Смотрите также

  • класс Application,
    который представляет консольное приложение
  • метод run,
    который запускает консольное приложение
  • метод find,
    который находит команду по имени
  • метод has,
    который проверяет наличие команды
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить