Метод argument
Метод argument применяется внутри класса консольной команды и позволяет получить значение аргумента по его имени. Первым параметром передаётся имя аргумента, определённое в свойстве signature. Если вызвать метод без параметров, он вернёт массив всех переданных аргументов.
Синтаксис
<?php
$this->argument($name);
?>
Пример
Давайте создадим консольную команду, которая принимает аргумент 'user' и выводит приветствие:
<?php
namespace AppConsoleCommands;
use IlluminateConsoleCommand;
class GreetUserCommand extends Command
{
protected $signature = 'greet:user {user}';
protected $description = 'Greet a user by name';
public function handle()
{
$user = $this->argument('user');
echo "Hello, " . $user . "!";
}
}
?>
Теперь выполним команду из терминала:
php artisan greet:user John
Результат выполнения кода:
"Hello, John!"
Пример
Давайте создадим команду, которая принимает два аргумента и выводит сообщение:
<?php
namespace AppConsoleCommands;
use IlluminateConsoleCommand;
class SendMessageCommand extends Command
{
protected $signature = 'message:send {recipient} {message}';
protected $description = 'Send a message to a recipient';
public function handle()
{
$recipient = $this->argument('recipient');
$message = $this->argument('message');
echo "Sending message to " . $recipient . ": " . $message;
}
}
?>
Теперь выполним команду из терминала:
php artisan message:send Alice "Hello there!"
Результат выполнения кода:
"Sending message to Alice: Hello there!"
Пример
Давайте создадим команду, которая выводит все переданные аргументы:
<?php
namespace AppConsoleCommands;
use IlluminateConsoleCommand;
class ShowArgumentsCommand extends Command
{
protected $signature = 'args:show {first} {second}';
protected $description = 'Show all arguments';
public function handle()
{
$args = $this->argument();
foreach ($args as $key => $value) {
echo $key . ": " . $value . "\n";
}
}
}
?>
Теперь выполним команду из терминала:
php artisan args:show one two
Результат выполнения кода:
"first: one
second: two"