[Laravel] Command 를 활용한 console 출력
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();
}
}