티스토리 뷰

반응형

Laravel에서 **콘솔 커맨드(artisan command)**를 작성할 때, 명령어에 전달되는 **인자(argument)**와 **옵션(option)**을 정의할 수 있습니다. 둘의 차이와 사용하는 방법을 아래에 정리해볼게요.


✅ 1. Argument vs Option

 

구분 Argument (인자) Option (옵션)
형식 php artisan command-name value php artisan command-name --option=value
필수 여부 기본은 필수 (선택적 지정 가능) 기본은 선택
다중 입력 배열로 지정 가능 (InputArgument::IS_ARRAY) 가능 (InputOption::VALUE_IS_ARRAY)
기본값 null 또는 기본값 지정 가능 기본값 지정 가능

🛠️ 2. 사용법 예시

a. 콘솔 커맨드 생성

php artisan make:command GreetUser

b. 인자 & 옵션 정의 (app/Console/Commands/GreetUser.php)

use Illuminate\Console\Command;

class GreetUser extends Command
{
    protected $signature = 'greet:user {name} {--times=1}';
    // 또는 아래처럼도 가능
    // protected $signature = 'greet:user {name : The name of the user} {--times=1 : Number of greetings}';

    protected $description = 'Greet a user multiple times';

    public function handle()
    {
        $name = $this->argument('name');
        $times = $this->option('times');

        for ($i = 0; $i < $times; $i++) {
            $this->info("Hello, $name!");
        }
    }
}

📌 3. 실행 예시

php artisan greet:user John --times=3

 

출력

 
Hello, John!
Hello, John!
Hello, John!

🔍 4. Signature 고급 옵션

타입 설명
{arg} 필수 인자
{arg?} 선택 인자
{arg=default} 기본값 포함 선택 인자
{--opt} 불리언 옵션 (true/false)
{--opt=} 값이 필요한 옵션
{--opt=*} 여러 값 받는 옵션 (배열)
반응형

'배움 > PHP' 카테고리의 다른 글

PHP HTML parser 방법  (0) 2025.04.17
Laravel 11 라라벨 스케줄링(Scheduling)  (0) 2025.04.16
Laravel 의 Concurrency 기능  (0) 2025.04.14
PHP Carbon  (1) 2025.04.11
Laravel Command 기능  (0) 2025.04.11
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함