创建进度条Laravel 5.0 Artisan命令时出错

时间:2017-09-12 17:18:17

标签: php laravel symfony laravel-5

我正在尝试在工匠命令中创建进度条。我正在使用的laravel版本是5.0(尽管它已经从4.x更新,因此命令存储在app / Console / Commands文件夹中,并且位于命名空间Foundry \ PhoneHome \ Console \ Commands中)

我正在运行$this->output->progressStart($count);并且还尝试了$this->output->createProgressBar($count);但是对于他们两个我都收到错误[Symfony\Component\Debug\Exception\FatalErrorException] Call to undefined method Symfony\Component\Console\Output\ConsoleOutput::progressStart()

我做错了什么或是否在laravel 5.0中不支持进度条?

1 个答案:

答案 0 :(得分:1)

在Laravel 5.1中输入了进度条,您可以升级Laravel(推荐)或自己编写一个简单的进度条。

在命令中添加以下功能:

private function updateProgress($done, $total) {
    $perc = floor(($done / $total) * 50);
    $left = 50 - $perc;
    $write = sprintf("\033[0G\033[2K[%'={$perc}s>%-{$left}s] - $perc%% - $done/$total", "", "");
    fwrite(STDERR, $write);
}

public function handle() {
     // your logic
     $this->updateProgress(1,10);
}

您可以在此处查看更多实施Command line progress bar in PHP