DLight\Application\Command

Mô tả: “command registry” cho CLI. Bạn đăng ký command name và handler, sau đó gọi run($argv) để dispatch theo $argv[1].

Namespace / đăng ký

  • Namespace: DLight\Application
  • File: src/Application/Command.php

Public API

  • $cli->register(string $name, callable|array|string $handler, bool $hiddenOnPhar = false): CommandEntry
  • $cli->registerAlias(string $alias, string $target): CommandEntry
  • $cli->hasCommand(string $name): bool
  • $cli->run(array $argv): void
  • $cli->list(): array

Handler hỗ trợ

  • callable: function/closure
  • class string: nếu là tên class tồn tại, sẽ new $handler() rồi gọi như callable ($instance($argv))
  • array callable: [ClassName::class, 'method'] hoặc [$object, 'method']

Demo

use DLight\Application\Command;

$cli = new Command();

$cli->register('hello', function(array $argv) {
    $name = $argv[2] ?? 'world';
    echo "Hello {$name}\n";
});

$cli->registerAlias('hi', 'hello');

$cli->run($argv);