Laravel5.4でコンソールでプログレスバー(Progress Bars)です。これ面白い。プロフェッショナルな仕上がりになります(笑)。
実際に表示されるプログレスバー(Progress Bars)
参考サイト
Artisan Console(Laravel)
Progress Bar (Symfony)
Laravelでコマンドラインアプリケーションを作成する(Qiita)
Fun with Symfony's Console Component(KnpUniversityさん)
Laravel5.4でコマンド作成(Writing Commands)
実際に表示されるプログレスバー(Progress Bars)
/app/Console/Commands/MyTestCommand.php
28/200 [===>------------------------] 14% 3 secs/21 secs 10.0 MiB
155/200 [=====================>------] 77% 16 secs/21 secs 10.0 MiB
200/200 [============================] 100% 20 secs/20 secs 10.0 MiB
public function handle()
{
$users = User::all(['name', 'email'])->toArray();
// プログレスバー
$bar = $this->output->createProgressBar(count($users));
// プログレスバーのフォーマット
$bar->setFormat(' %current%/%max% [%bar%] %percent:3s%% %elapsed:6s%/%estimated:-6s% %memory:6s%');
// 処理前の表示
$bar->setEmptyBarCharacter('-');
// 処理後の表示
$bar->setBarCharacter('=>');
// 処理中の表示
$bar->setProgressCharacter(">");
// テーブルのヘッダ
$headers = ['Name', 'Email'];
foreach ($users as $user) {
usleep(10000);
// 実際の処理
// $this->performTask($user);
$bar->advance();
}
print "\n" ;
// テーブル描画
$this->table($headers, $users);
$bar->finish();
print "\n" ;
}
参考サイト
Artisan Console(Laravel)
Progress Bar (Symfony)
Laravelでコマンドラインアプリケーションを作成する(Qiita)
Fun with Symfony's Console Component(KnpUniversityさん)
Laravel5.4でコマンド作成(Writing Commands)