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

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

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

Синтаксис

public function find(string $name): Command

Пример

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

<?php namespace AppCommand; 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; } } ?>

Теперь найдём эту команду через метод find:

<?php use AppCommandArticleCommand; use SymfonyComponentConsoleApplication; use SymfonyComponentConsoleExceptionCommandNotFoundException; $application = new Application(); $application->add(new ArticleCommand()); try { $command = $application->find('app:article'); echo $command->getName(); } catch (CommandNotFoundException $e) { echo 'not found'; } ?>

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

"app:article"

Пример

Давайте попробуем найти команду, которой нет в приложении:

<?php use AppCommandArticleCommand; use SymfonyComponentConsoleApplication; use SymfonyComponentConsoleExceptionCommandNotFoundException; $application = new Application(); $application->add(new ArticleCommand()); try { $command = $application->find('app:user'); echo $command->getName(); } catch (CommandNotFoundException $e) { echo 'not found'; } ?>

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

"not found"

Пример

Давайте найдём команду по её алиасу:

<?php namespace AppCommand; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; class ArticleCommand extends Command { protected static $defaultName = 'app:article'; protected static $defaultDescription = 'article command'; protected function configure(): void { $this->setAliases(['app:a']); } protected function execute(InputInterface $input, OutputInterface $output): int { $output->writeln('article'); return Command::SUCCESS; } } ?>

Теперь найдём команду по алиасу 'app:a':

<?php use AppCommandArticleCommand; use SymfonyComponentConsoleApplication; $application = new Application(); $application->add(new ArticleCommand()); $command = $application->find('app:a'); echo $command->getName(); ?>

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

"app:article"

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

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