Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Собственно есть такой классный progressbar
, который может показывать выполнение команды в консоли.
В консоли все работает отлично:
$progress = new ProgressBar($this->output, 50);
// start and displays the progress bar
$progress->start();
$i = 0;
while ($i++ < 50) {
sleep(1);
$progress->advance();
}
на выходе 0/2 [>---------------------------] 0% и бегущая "птитчка".
Но так как команд много, иногда возникает желание запускать даные команды из GUI не заходя в консоль. Делается это очено просто (согласно документации )
// Блок artisan
Route::get('artisan/{id}', function($id)
{
return \Artisan::call($id, []);
});
И вот хотелось бы чтобы и прогрес баз показывался в консоли. немного погуглив я нашел ссылочку http://lukaswhite.com/blog/post/2014/ru … board-gui/
радостный начал тестить - на выходе ничего, поковыряв исходный класс а потом и найдя ссылку https://laracasts.com/discuss/channels/ … -laravel-5
я понял что процес затягивается:
Может кому пригодится в L5 это решается так:
use Symfony\Component\Console\Output\StreamOutput;
$this->output = new StreamOutput(fopen('php://output', 'w'));
$bar = new ProgressBar($this->output, 10);
Либо
use Symfony\Component\Console\Output\BufferedOutput;
$output = new BufferedOutput;
$bar = new ProgressBar($output, 10);
Но проблема в том, что вывод в GUI появляется уже в конце когда скрипт отработал, а хотелось бы чтобы это было в виде прогресбара...
Догадываюсь что все не все так просто и это нужно делать как-то иначе...
Прошу просветить, как решить проблему... Или хотя бы пример реализации чего то похожего...
Не в сети
Страницы 1