Files
water_new/modules/Configuration/Configuration.php
2023-03-08 09:16:04 +08:00

74 lines
1.9 KiB
PHP

<?php
namespace Modules\Configuration;
use Illuminate\Support\Facades\Artisan;
use Nwidart\Modules\Facades\Module as ModuleManager;
class Configuration
{
protected static string $mainTitle = '参数配置管理';
/**
* Notes : 模块初始化要做的一些操作
*/
public static function install()
{
Artisan::call('migrate', [
'--path' => 'modules/Configuration/Database/Migrations',
]);
self::createAdminMenu();
}
/**
* Notes : 卸载模块的一些操作
*/
public static function uninstall()
{
$menu = config('admin.database.menu_model');
$main = $menu::where('title', self::$mainTitle)->first();
$main->delete();
}
/**
* 根据模块配置情况创建是否需要配置菜单
*/
protected static function createAdminMenu()
{
$menu = config('admin.database.menu_model');
$main = $menu::create([
'parent_id' => 0,
'order' => 50,
'title' => self::$mainTitle,
'icon' => 'fa-bars',
]);
$modules = ModuleManager::toCollection();
$data = [];
$i = 1;
foreach ($modules as $module) {
$need = $module->get('config', false);
if ($need) {
$name = $module->get('configName', '');
if (! $name) {
$name = $module->getName();
}
$alias = $module->getAlias();
$data[] = [
'order' => $i,
'title' => $name.'配置',
'icon' => 'fa-bars',
'uri' => 'configurations/'.$alias,
];
$i++;
}
}
if (count($data) > 0) {
$main->children()->createMany($data);
}
}
}