我正在尝试在工匠命令中创建进度条。我正在使用的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中不支持进度条?
答案 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