プロさんのおうち   ~プログラムのサンプル置き場~


プログレスバーを利用する


Laravelのコンソールでプログレスバーを利用してみます。

プログレスバーの利用

プログレスバーは以下のように利用します。

今回は、単純にループを回してみます。


/**
 * Execute the console command.
 *
 * @return mixed
 */
public function handle()
{
    // 基準を設定する(今回は5回ループさせるので、5)。
    $bar = $this->output->createProgressBar(5);

    foreach (range(1, 5) as $i) {
        // プログレスバーを処理に応じて進める。
        $bar->advance();
    }

    // プログレスバーを終了する。
    $bar->finish();
}

-------出力サンプル--------
 5/5 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
				

処理中でコンソール出力を行うと、複数行表示されます。

以下は、単純にバーの前に数値を出力してみたものです。


1
 1/5 [▓▓▓▓▓░░░░░░░░░░░░░░░░░░░░░░░]  20%
2
 2/5 [▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░]  40%
3
 3/5 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░]  60%
4
 4/5 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░]  80%
5
 5/5 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
				

また、以下のように出力フォーマットもある程度設定できます。


$bar = $this->output->createProgressBar(5);
// 出力フォーマットを設定する。
$bar->setFormat('%bar% %current:3s%%/%max:3s%% %memory:6s%');
// プログレスバーを処理に応じて進める。
foreach (range(1, 5) as $i) {
    $bar->advance();
}

// プログレスバーを終了する。
$bar->finish();

-------出力サンプル--------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓   5%/  5% 10.0 MiB
				
参考URL



メニューに戻る


CopyRight 2019 株式会社PUreatio