Termwind Live Plugin allows you to make your cli content live.
Requires PHP 8.0+
Require Termwind Live Plugin using Composer:
composer require xico2k/termwind-plugin-liveuse function Termwind\Live\live;
live(function () {
static $total = 0;
return sprintf('The content was refreshed %d times.', ++$total);
})->refreshEvery(seconds: 1);The refreshEvery methods may be used to update the content by
certain amount of time.
refreshEvery(milliseconds: 0, seconds: 0)refreshEverySeconds($seconds)refreshEveryMilliseconds($seconds)
// Seconds
live(fn () => 'foo')->refreshEverySeconds(1); // or
live(fn () => 'foo')->refreshEvery(seconds: 1);
// Milliseconds
live(fn () => 'foo')->refreshEveryMilliseconds(250); // or
live(fn () => 'foo')->refreshEvery(milliseconds: 1);The while() method may be used to update the content
while the condition is true.
live(fn () => 'Loading...')
->while(fn () => $process->running());The showCursor() and hideCursor() methods may be used to
show/hide the cursor on your cli.
live('Loading...')
->hideCursor()
->while(fn () => $process->running())
->showCursor();The clear() method may be used to clear the live output.
live('Loading...')
->while(fn () => $process->running())
->clear();The RefreshEvent is passed to the Closure and provides a way
to stop the execution.
use Termwind\Live\Events\RefreshEvent;
live(function (RefreshEvent $event) {
$shouldStop = true; // Call to check something...
if ($shouldStop) {
$event->stop();
}
return 'foo';
})->refreshEvery(seconds: 1);Termwind Live Plugin is an open-sourced software licensed under the MIT license.
