askvortsov How cool 🙂
FYI, this is what I got at the moment:
// extend.php
return [
new EnableConsole(),
new App\Extend\Command([
\App\Console\Command\DemoCommand::class,
\App\Console\Command\ApiKeysListCommand::class,
\App\Console\Command\ApiKeysGenerateCommand::class,
\App\Console\Command\ApiKeysInvokeCommand::class,
\App\Console\Command\ExtensionsListCommand::class,
\App\Console\Command\ExtensionsEnableCommand::class,
\App\Console\Command\ExtensionsDisableCommand::class,
]),
// Register extenders here to customize your forum!
];
// Command.php
namespace App\Extend;
use Flarum\Console\Event\Configuring;
use Flarum\Extend\ExtenderInterface;
use Flarum\Extension\Extension;
use Illuminate\Contracts\Container\Container;
use Illuminate\Contracts\Events\Dispatcher;
class Command implements ExtenderInterface
{
/**
* @var array|string
*/
protected $commands;
public function __construct($commands)
{
$this->commands = (array) $commands;
}
public function extend(Container $container, Extension $extension = null)
{
/** @var Dispatcher $events */
$events = $container->make(Dispatcher::class);
$events->listen(Configuring::class, function (Configuring $event) {
foreach ($this->commands as $command) {
$event->addCommand($command);
}
});
}
}