提交 038c3265 编写于 作者: S server

develop

上级 54fbcc2e
......@@ -5,6 +5,7 @@ namespace ModStart;
use Illuminate\Support\Facades\Cache;
use ModStart\Core\Exception\BizException;
use ModStart\Form\Form;
use ModStart\Module\ModuleManager;
use ModStart\Support\Manager\FieldManager;
use ModStart\Support\Manager\WidgetManager;
......@@ -38,6 +39,10 @@ class ModStart
self::safeCleanOptimizedFile('bootstrap/cache/compiled.php');
self::safeCleanOptimizedFile('bootstrap/cache/services.json');
self::safeCleanOptimizedFile('bootstrap/cache/config.php');
if (method_exists(ModuleManager::class, 'hotReloadSystemConfig')) {
ModuleManager::hotReloadSystemConfig();
}
}
private static function safeCleanOptimizedFile($file)
......
......@@ -310,9 +310,12 @@ class ModuleManager
* 列出所有模块,包括系统和用户安装
* @return array|mixed
*/
public static function listAllInstalledModules()
public static function listAllInstalledModules($forceReload = false)
{
static $modules = null;
if ($forceReload) {
$modules = null;
}
if (null !== $modules) {
return $modules;
}
......@@ -497,4 +500,24 @@ class ModuleManager
return $default;
}
/**
* 动态重载
*/
public static function hotReloadSystemConfig()
{
$configSystem = config('module.system', []);
$file = base_path('config/module.php');
if (file_exists($file)) {
if (function_exists('opcache_invalidate')) {
opcache_invalidate($file);
}
$configModuleContent = (include $file);
$configSystem = array_merge($configSystem, $configModuleContent['system']);
config([
'module.system' => $configSystem,
]);
}
self::listAllInstalledModules(true);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册