Метод handle
Метод handle является обязательным для реализации
в каждом пользовательском классе команды. Он вызывается
при выполнении команды через консоль. Внутри метода
располагается основная логика: работа с аргументами,
опциями, вывод информации и выполнение бизнес-логики.
Метод должен возвращать целое число - код завершения
(0 в случае успеха, 1 при ошибке).
Синтаксис
<?php
use Illuminate\Console\Command;
class MyCommand extends Command
{
public function handle(): int
{
// Логика команды
return 0;
}
}
?>
Пример
Создадим простую команду, которая выводит приветствие:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class GreetCommand extends Command
{
protected $signature = 'greet';
protected $description = 'Display a greeting message';
public function handle(): int
{
$this->info('Hello, welcome to Laravel!');
return 0;
}
}
?>
Результат выполнения команды php artisan greet:
"Hello, welcome to Laravel!"
Пример
Обработаем аргумент в методе handle:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class ArgumentCommand extends Command
{
protected $signature = 'process {name}';
protected $description = 'Process user by name';
public function handle(): int
{
$name = $this->argument('name');
$this->info("Processing user: $name");
return 0;
}
}
?>
Результат выполнения команды php artisan process John:
"Processing user: John"
Пример
Метод handle может возвращать разные коды:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class StatusCommand extends Command
{
protected $signature = 'check {--force}';
protected $description = 'Check system status';
public function handle(): int
{
$force = $this->option('force');
if ($force) {
$this->info('Force mode enabled');
return 0;
}
$this->error('Force mode required');
return 1;
}
}
?>
Результат выполнения команды php artisan check:
"Force mode required"
Результат выполнения команды php artisan check --force:
"Force mode enabled"