laravel

LaravelのCommandの出力メソッド

Commandからコマンドラインに出力するためのメソッドはいくつか用意されています。

今回は出力のメソッドに関して紹介します。

実装

出力コマンドはいずれもANSIエスケープシーケンスによって出力が色付けされます。

いずれのメソッドも$string引数に出力する文字列を指定します。

また$verbosity引数には出力レベルを指定します。

下記の表のような主要な出力メソッドがあります。

メソッド出力スタイル
line($string, $style=null, $verbosity=null)スタイルなし
info($string,$verbosity=null)infoスタイル(文字色:緑)
comment($string,$verbosity=null)commentスタイル(文字色:黄色)
question($string,$verbosity=null)questionスタイル(文字色:黒、背景色:シアン)
error($string,$verbosity=null)errorスタイル(文字色:白、背景色:赤)
warn($string,$verbosity=null)warnスタイル(文字色:黄)
主な出力メソッド
出力レベル定数値コマンド実行時の出力レベル指定
VERBOSITY_QUIET16常に出力
VERBOSITY_NORMAL32デフォルトの出力レベル。–quiet以外で出力。
VERBOSITY_VERBOSE64-v,-vv,-vvvで出力
VERBOSITY_VERY_VERBOSE128-vv,-vvvで出力
VERBOSITY_DEBUG256-vvvでのみ出力
出力レベル

出力レベルはコマンドの実行時のオプションで指定します。

artisanコマンドを用いてcommandクラスを作成します。

php artisan make:command OutputCommand

commandクラスを下記のように編集して出力レベルごとの出力を確認してみます。

// /app/Console/Commands/OutputCommand.php
<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Symfony\Component\Console\Output\OutputInterface;

class OutputCommand extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'output';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '出力テスト';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->info('quiet',OutputInterface::VERBOSITY_QUIET);
        $this->info('normal',OutputInterface::VERBOSITY_NORMAL);
        $this->info('verbose',OutputInterface::VERBOSITY_VERBOSE);
        $this->info('very_verbose',OutputInterface::VERBOSITY_VERY_VERBOSE);
        $this->info('debug',OutputInterface::VERBOSITY_DEBUG);
    }
}

結果

コマンドを実行すると下記のようにオプションによって出力内容が異なることが確認できます。

$ php artisan output --quiet
quiet

$ php artisan output        
quiet
normal

$ php artisan output -v
quiet
normal
verbose

$ php artisan output -vv
quiet
normal
verbose
very_verbose

$ php artisan output -vvv
quiet
normal
verbose
very_verbose
debug

参考文献

PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応

サイト

https://laravel.com/docs/6.x/artisan