Определение параметров команды (сигнатура)

Сигнатура – это как инструкция для пользователя, что нужно передать и как. Она описывает аргументы (обязательные параметры) и опции (дополнительные флаги).

Аргументы

Аргументы – это обязательные или необязательные значения, которые пользователь передает команде:

protected string $signature = 'user:profile {id}';
PHP

Пользователь вызовет: php imhotep user:profile 5

Правила для аргументов

Синтаксис Описание
{user} Обязательный аргумент
{user?} Необязательный аргумент
{user*} Массив аргументов
{user?*} Необязательный массив
{user?=imhotep} Необязательный со значением по умолчанию

Опции

Опции – это как переключатели. Они либо есть, либо нет, и могут принимать значения:

protected string $signature = 'send:email {user} {--queue} {--format=}';
PHP

Пользователь вызовет: php imhotep send:email john --queue --format=html

Правила для опций

Синтаксис Описание
{--format} Просто флаг (без значения)
{--f|format} С коротким псевдонимом
{--format=} С обязательным значением
{--format=?} С необязательным значением
{--format=*} Массив значений
{--format=?*} Необязательный массив
{--format=?default} Со значением по умолчанию

Примеры реальных сигнатур

// Список файлов с опциональным форматом вывода
$signature = 'list {--format=?txt}';

// Отправка письма с обязательным получателем и опциональным типом
$signature = 'mail:send {name} {type?=register}';
PHP

Следующие шаги

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