move into sonardesk
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Core\Services;
|
||||
|
||||
use Modules\Core\Contracts\ModuleRegistry;
|
||||
|
||||
final class LaravelModuleRegistry implements ModuleRegistry
|
||||
{
|
||||
public function all(): array
|
||||
{
|
||||
$statuses = json_decode((string) @file_get_contents(base_path('modules_statuses.json')), true) ?: [];
|
||||
$modules = [];
|
||||
foreach (glob(base_path('Modules/*/module.json')) ?: [] as $manifest) {
|
||||
$data = json_decode((string) file_get_contents($manifest), true) ?: [];
|
||||
$name = (string) ($data['name'] ?? basename(dirname($manifest)));
|
||||
$modules[] = [
|
||||
'name' => $name,
|
||||
'alias' => (string) ($data['alias'] ?? strtolower($name)),
|
||||
'version' => (string) ($data['version'] ?? '0.0.0'),
|
||||
'enabled' => (bool) ($statuses[$name] ?? false),
|
||||
];
|
||||
}
|
||||
usort($modules, fn (array $a, array $b): int => $a['name'] <=> $b['name']);
|
||||
|
||||
return $modules;
|
||||
}
|
||||
|
||||
public function enabled(string $name): bool
|
||||
{
|
||||
foreach ($this->all() as $module) {
|
||||
if (strcasecmp($module['name'], $name) === 0) {
|
||||
return $module['enabled'];
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user