Ошибка при создании индикатора выполнения команд Laravel 5.0 Artisan

Я пытаюсь создать индикатор выполнения в ремесленной команде. Используемая мной версия 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

Решение

Индикаторы прогресса были введены в 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);
}

Вы можете увидеть больше реализаций здесь Индикатор выполнения командной строки в PHP

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector