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

Константа INVALID

Константа INVALID класса Command представляет собой целочисленное значение, которое возвращается из метода execute. Она сигнализирует фреймворку о том, что команда не смогла выполнить свою задачу из-за некорректных входных данных или ошибки валидации. Значение этой константы равно 2.

Возврат данного кода обычно сопровождается выводом сообщения об ошибке в консоль, чтобы пользователь понял причину сбоя. Это отличается от константы FAILURE, которая означает общую ошибку выполнения, и от SUCCESS, означающей успешное завершение.

Синтаксис

Command::INVALID

Пример

Давайте создадим команду, которая проверяет наличие обязательного аргумента. Если аргумент не передан, команда возвращает константу INVALID:

<?php namespace App\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Style\SymfonyStyle; class CheckUserCommand extends Command { protected static $defaultName = 'app:check-user'; protected function configure(): void { $this ->setDescription('Checks user data.') ->addArgument('name', InputArgument::OPTIONAL, 'User name'); } protected function execute(InputInterface $input, OutputInterface $output): int { $io = new SymfonyStyle($input, $output); $name = $input->getArgument('name'); if (empty($name)) { $io->error('The name argument is required.'); return Command::INVALID; } $io->success('User ' . $name . ' is valid.'); return Command::SUCCESS; } } ?>

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

php bin/console app:check-user

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

[ERROR] The name argument is required.

Пример

Давайте добавим проверку на допустимые символы в имени пользователя. Если имя содержит цифры, команда также вернёт INVALID:

<?php namespace App\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Style\SymfonyStyle; class CheckUserCommand extends Command { protected static $defaultName = 'app:check-user'; protected function configure(): void { $this ->setDescription('Checks user data.') ->addArgument('name', InputArgument::OPTIONAL, 'User name'); } protected function execute(InputInterface $input, OutputInterface $output): int { $io = new SymfonyStyle($input, $output); $name = $input->getArgument('name'); if (empty($name)) { $io->error('The name argument is required.'); return Command::INVALID; } if (preg_match('/[0-9]/', $name)) { $io->error('The name must not contain digits.'); return Command::INVALID; } $io->success('User ' . $name . ' is valid.'); return Command::SUCCESS; } } ?>

Запустим команду с именем, содержащим цифры:

php bin/console app:check-user user123

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

[ERROR] The name must not contain digits.

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

  • класс Command,
    который представляет собой базовый класс для консольных команд
  • метод execute,
    который содержит логику выполнения команды
  • константа SUCCESS,
    которая указывает на успешное завершение команды
  • константа FAILURE,
    которая указывает на общую ошибку выполнения команды
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить