improve module interface

This commit is contained in:
root
2026-01-07 00:06:38 -05:00
parent 3324157ed9
commit 6d0c5584bd
3 changed files with 32 additions and 11 deletions

View File

@@ -9,6 +9,7 @@ use KTXC\Service\UserAccountsService;
use KTXC\SessionIdentity; use KTXC\SessionIdentity;
use KTXF\Controller\ControllerAbstract; use KTXF\Controller\ControllerAbstract;
use KTXC\SessionTenant; use KTXC\SessionTenant;
use KTXF\Module\ModuleBrowserInterface;
use KTXF\Routing\Attributes\AuthenticatedRoute; use KTXF\Routing\Attributes\AuthenticatedRoute;
class InitController extends ControllerAbstract class InitController extends ControllerAbstract
@@ -21,11 +22,7 @@ class InitController extends ControllerAbstract
private readonly PermissionChecker $permissionChecker, private readonly PermissionChecker $permissionChecker,
) {} ) {}
#[AuthenticatedRoute( #[AuthenticatedRoute('/init', name: 'init', methods: ['GET'])]
'/init',
name: 'init',
methods: ['GET']
)]
public function index(): JsonResponse { public function index(): JsonResponse {
$configuration = []; $configuration = [];
@@ -33,7 +30,7 @@ class InitController extends ControllerAbstract
// modules - filter by permissions // modules - filter by permissions
$configuration['modules'] = []; $configuration['modules'] = [];
foreach ($this->moduleManager->list() as $module) { foreach ($this->moduleManager->list() as $module) {
if (!method_exists($module, 'bootUi')) { if ($module instanceof ModuleBrowserInterface === false) {
continue; continue;
} }
@@ -44,7 +41,7 @@ class InitController extends ControllerAbstract
continue; continue;
} }
$configuration['modules'][$handle] = $module->bootUi(); $configuration['modules'][$handle] = $module->registerBI();
} }
// tenant // tenant

View File

@@ -2,6 +2,8 @@
namespace KTXC\Module; namespace KTXC\Module;
use KTXF\Module\ModuleBrowserInterface;
use KTXF\Module\ModuleConsoleInterface;
use KTXF\Module\ModuleInstanceAbstract; use KTXF\Module\ModuleInstanceAbstract;
/** /**
@@ -9,7 +11,7 @@ use KTXF\Module\ModuleInstanceAbstract;
* *
* Provides core system functionality and permissions * Provides core system functionality and permissions
*/ */
class Module extends ModuleInstanceAbstract class Module extends ModuleInstanceAbstract implements ModuleConsoleInterface, ModuleBrowserInterface
{ {
public function __construct() {} public function __construct() {}
@@ -35,7 +37,7 @@ class Module extends ModuleInstanceAbstract
public function version(): string public function version(): string
{ {
return '1.0.0'; return '0.0.1';
} }
public function permissions(): array public function permissions(): array
@@ -94,8 +96,17 @@ class Module extends ModuleInstanceAbstract
]; ];
} }
public function bootUi(): ?array public function registerCI(): array
{ {
return null; return [
\KTXC\Console\ModuleListCommand::class,
\KTXC\Console\ModuleEnableCommand::class,
\KTXC\Console\ModuleDisableCommand::class,
];
}
public function registerBI(): array
{
return [];
} }
} }

View File

@@ -0,0 +1,13 @@
<?php
declare(strict_types=1);
namespace KTXF\Module;
/**
* Module Browser Interface
*/
interface ModuleBrowserInterface
{
public function registerBI(): array;
}