Call interactive artisan command using arbitrary stream
mpyw/streamable-console is a Laravel package for call interactive artisan command using arbitrary stream.
It currently has 4 GitHub stars and 111 downloads on Packagist (latest version v1.2.1).
Install it with composer require mpyw/streamable-console.
Discover more Laravel packages by mpyw
or browse all Laravel packages to compare alternatives.
Last updated
Call interactive artisan command using arbitrary stream.
^8.2^11.0 || ^12.0 || ^13.0^2.7[!NOTE] Older versions have outdated dependency requirements. If you cannot prepare the latest environment, please refer to past releases.
composer require mpyw/streamable-console
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class QuizCommand extends Command
{
protected $signature = 'example:quiz';
/**
* @return int
*/
public function handle(): int
{
// We need to type "no" and press Enter to pass
if ($this->confirm('Is one plus one equals to three?', true)) {
return 1;
}
return 0;
}
}
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Mpyw\StreamableConsole\Streamable;
class RunCommand extends Command
{
use Streamable;
protected $signature = 'example:run';
/**
* @return int
*/
public function handle(): int
{
// Type "no" and press Enter
return $this->usingInputStream("no\n")->call('example:quiz');
}
}
yes command emulation)<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class QuizCommand extends Command
{
protected $signature = 'example:quiz';
/**
* @return int
*/
public function handle(): int
{
// We need to type "no" and press Enter to pass at least for three times
if ($this->confirm('Is one plus one equals to three?', true)) {
return 1;
}
if ($this->confirm('Is one plus one equals to three?', true)) {
return 1;
}
if ($this->confirm('Is one plus one equals to three?', true)) {
return 1;
}
return 0;
}
}
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Mpyw\StreamableConsole\Streamable;
class RunCommand extends Command
{
use Streamable;
protected $signature = 'example:run';
/**
* @return int
*/
public function handle(): int
{
// Infinitely type "no" and press Enter
return $this->usingInfiniteInput("no\n")->call('example:quiz');
}
}
Note that you can use yes() as an alias of usingInfiniteInput().