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

Атрибут signature

Атрибут signature класса Command применяется для задания имени команды, а также определения доступных аргументов и опций. Первый аргумент - это строка сигнатуры, которая определяет способ вызова команды из консоли. Второй аргумент - это описание команды, которое будет отображаться в списке доступных команд.

Синтаксис

<?php namespace AppConsoleCommands; use IlluminateConsoleCommand; class MyCommand extends Command { protected $signature = 'имя:команды {аргумент} {--опция=значение}'; protected $description = 'Описание команды'; public function handle() { // Логика команды } } ?>

В атрибуте signature можно определить обязательные и необязательные аргументы, а также опции с значениями или без. Аргументы определяются в фигурных скобках, опции - в квадратных.

Пример

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

<?php namespace AppConsoleCommands; use IlluminateConsoleCommand; class GreetUserCommand extends Command { protected $signature = 'user:greet {name}'; protected $description = 'Приветствует пользователя'; public function handle() { $name = $this->argument('name'); $this->info("Привет, $name!"); } } ?>

Запустим созданную команду из консоли:

php artisan user:greet Alex

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

"Привет, Alex!"

Пример

Добавим опцию для команды, которая позволит выбирать язык приветствия:

<?php namespace AppConsoleCommands; use IlluminateConsoleCommand; class GreetLanguageCommand extends Command { protected $signature = 'user:greet-lang {name} {--lang=en : Язык приветствия}'; protected $description = 'Приветствует пользователя на указанном языке'; public function handle() { $name = $this->argument('name'); $lang = $this->option('lang'); $greetings = [ 'en' => "Hello, $name!", 'ru' => "Привет, $name!", 'es' => "¡Hola, $name!", ]; $message = $greetings[$lang] ?? $greetings['en']; $this->info($message); } } ?>

Запустим команду с указанием опции:

php artisan user:greet-lang Maria --lang=es

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

"¡Hola, Maria!"

Пример

Использование необязательного аргумента и булевой опции:

<?php namespace AppConsoleCommands; use IlluminateConsoleCommand; class NotifyCommand extends Command { protected $signature = 'notify {message} {--urgent : Отправить срочное уведомление}'; protected $description = 'Отправляет уведомление'; public function handle() { $message = $this->argument('message'); $isUrgent = $this->option('urgent'); if ($isUrgent) { $this->warn("СРОЧНО: $message"); } else { $this->info("Уведомление: $message"); } } } ?>

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

php artisan notify "Тестовое сообщение"

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

"Уведомление: Тестовое сообщение"

Запустим команду с опцией --urgent:

php artisan notify "Важное сообщение" --urgent

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

"СРОЧНО: Важное сообщение"

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

  • атрибут description,
    который задает описание команды
  • метод argument,
    который получает значение аргумента
  • метод option,
    который получает значение опции
  • метод info,
    который выводит информационное сообщение в консоль
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить