composer require friendsofhyperf/closure-command
php bin/hyperf.php vendor:publish friendsofhyperf/closure-command
// config/console.php
use FriendsOfHyperf\ClosureCommand\Console;
use FriendsOfHyperf\ClosureCommand\Inspiring;
use function FriendsOfHyperf\ClosureCommand\command;
Console::command('inspire', function () {
$this->comment(Inspiring::quote());
})->describe('Display an inspiring quote');
Console::command('foo:bar', function() {
$this->info('Command foo:bar executed.');
})->describe('Description of command foo::bar');
command('whoami', function () {
$this->info('Your are friend of hyperf');
})->describe('Who am I');
use FriendsOfHyperf\ClosureCommand\Annotation\Command;
use Hyperf\Contract\StdoutLoggerInterface;
use FriendsOfHyperf\ClosureCommand\Input;
use FriendsOfHyperf\ClosureCommand\Output;
class Foo
{
#[Command(signature: 'foo:bar {--bar=1}', description: 'Test foo::bar')]
public function bar($bar, Input $input, Output $output)
{
$output->info('$bar:' . $bar);
$output->warning('foo::bar executed.');
}
}