Опции Artisan-команды в Laravel
Кроме обязательных аргументов
бывают флаги: включить режим,
сделать вывод заглавным,
пропустить шаг. В Artisan это
опции. В $signature
их пишут как {--upper} -
с двумя дефисами в имени.
В handle опцию читают
через $this->option('upper').
Без флага в терминале значение
ложно; с --upper - истинно:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class HelloUserCommand extends Command
{
protected $signature = 'user:hello {name} {--upper}';
protected $description = 'Say hello to a user';
public function handle(): int
{
$name = $this->argument('name');
if ($this->option('upper')) {
$name = mb_strtoupper($name);
}
$this->info('Hello, '.$name);
return self::SUCCESS;
}
}
?>
Запуск без опции и с опцией:
php artisan user:hello Ivan
php artisan user:hello Ivan --upper
Аргумент {name} по-прежнему
обязателен; --upper -
по желанию. Так разделяют
«что передать» и «как обработать».
В option имя без дефисов:
'upper', не
'--upper'.
Добавьте в signature
{--upper}.
В handle проверьте
option('upper')
и измените вывод.
Запустите команду с
--upper и без него.