【问题标题】:Error creating progress bar Laravel 5.0 Artisan Commands创建进度条 Laravel 5.0 Artisan 命令时出错
【发布时间】:2018-02-21 06:13:48
【问题描述】:

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

【问题讨论】:

    标签: php laravel symfony laravel-5


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2014-04-01
      • 2015-04-14
      • 1970-01-01
      • 2017-01-18
      • 2019-04-02
      • 2012-06-16
      • 2016-02-07
      • 1970-01-01
      • 2016-09-24
      相关资源
      最近更新 更多