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-live
use 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.