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

Атрибут AsCommand

Атрибут AsCommand вешается на класс консольной команды и регистрирует её в приложении. Первым параметром передаётся имя команды. Вторым параметром можно передать описание команды. Также доступны параметры hidden и aliases.

Синтаксис

#[AsCommand(name, description: description, hidden: hidden, aliases: aliases)]

Пример

Давайте создадим простую команду, которая выводит приветствие:

<?php namespace AppCommand; use SymfonyComponentConsoleAttributeAsCommand; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; #[AsCommand( name: 'app:hello', description: 'Выводит приветствие', )] class HelloCommand extends Command { protected function execute(InputInterface $input, OutputInterface $output): int { $output->writeln('hello'); return Command::SUCCESS; } } ?>

Запустим команду в терминале:

php bin/console app:hello

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

hello

Пример

Давайте передадим описание команды и добавим псевдоним app:hi:

<?php namespace AppCommand; use SymfonyComponentConsoleAttributeAsCommand; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; #[AsCommand( name: 'app:hello', description: 'Выводит приветствие', aliases: ['app:hi'], )] class HelloCommand extends Command { protected function execute(InputInterface $input, OutputInterface $output): int { $output->writeln('hello'); return Command::SUCCESS; } } ?>

Теперь команду можно вызвать по псевдониму:

php bin/console app:hi

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

hello

Пример

Давайте скроем команду из списка при помощи параметра hidden:

<?php namespace AppCommand; use SymfonyComponentConsoleAttributeAsCommand; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; #[AsCommand( name: 'app:hello', description: 'Выводит приветствие', hidden: true, )] class HelloCommand extends Command { protected function execute(InputInterface $input, OutputInterface $output): int { $output->writeln('hello'); return Command::SUCCESS; } } ?>

Команда не попадёт в вывод list, но её по-прежнему можно вызвать напрямую:

php bin/console app:hello

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

hello

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

  • команда make:command,
    которая создаёт класс консольной команды
  • команда list,
    которая выводит список всех команд
  • команда help,
    которая выводит справку по команде
  • атрибут AsCommand,
    который регистрирует консольную команду
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить