[Laravel] Command 를 활용한 console 출력 updated_at: 2024-12-14 17:12

Illuminate\Console\Command 를 활용한 console 출력

php artisan을 사용하다보면 사용자에게 다양한 정보 전달이 필요할 때가 있다.
이때 Command 명령을 활용하면 매우 유용하다.

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class MyCommand extends Command
{
 public function handle()
  {
    // 입력프롬프트 생성
    $name = $this->ask('What is your name?'); 

    // confirm 받기: 기본값은 false 이며 y 혹은 yes 를 입력하면 true가 반환된다.
    if ($this->confirm('Do you wish to continue?')) {
    }

    // 자동완성
    $name = $this->anticipate('What is your name?', ['Taylor', 'Dayle']);

    // 여러개의 선택지
    $name = $this->choice('What is your name?', ['Taylor', 'Dayle'], $defaultIndex);

    // 출력작성
    // 콘솔에 출력하기 위해서는 line, info, comment, question, error 메소드를 사용합니다. 각각의 이름이 나타내는 목적에 맞게 사용되고 각각 적당한 ANSI 컬러로 표시됩니다.
    // 정보메시지를 알리는 경우, 일반적인 경우 녹색 텍스트가 출력 
    $this->info('a command  excuted successfully.'); 
    // 무색 콘솔 출력
    $this->line('Display this on the screen');
    $this->comment('Please process next step.');


    // 프로그래스 바 - 진행률 표시
    $users = App\User::all();
    $bar = $this->output->createProgressBar(count($users));
    $bar->start();
    foreach ($users as $user) {
      $this->performTask($user);
      $bar->advance();
    }
    $bar->finish();
  }
}

평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글