From 43f4a766c623f5f6238b0302455e9427cc37bf80 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Fri, 14 Dec 2018 17:16:05 +0900 Subject: [PATCH] Remove unnecessary triggers at cache recompile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 캐시파일 재생성 시점에 불필요한 트리거(현재 설치되어 있지 않은 모듈에서 등록한 트리거)를 일괄 삭제하여 평소 실행 속도를 개선함. 프로파일러 모듈에서 제공하는 것과 유사한 기능임. 단, 모듈 설정이나 애드온 설정은 재설치에 대비하여 그대로 둠. --- modules/module/module.class.php | 12 +++++++++++- modules/module/queries/deleteTriggers.xml | 8 ++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 modules/module/queries/deleteTriggers.xml diff --git a/modules/module/module.class.php b/modules/module/module.class.php index 291146257..392db552c 100644 --- a/modules/module/module.class.php +++ b/modules/module/module.class.php @@ -597,8 +597,18 @@ class module extends ModuleObject function recompileCache() { $oModuleModel = getModel('module'); - $oModuleModel->getModuleList(); + $module_list = $oModuleModel->getModuleList(); + $module_names = array_map(function($module_info) { + return $module_info->module; + }, $module_list); + $oModuleModel->loadModuleExtends(); + + // Delete triggers belonging to modules that don't exist + $args = new stdClass; + $args->module = $module_names ?: []; + executeQuery('module.deleteTriggers', $args); + Rhymix\Framework\Cache::delete('triggers'); } } /* End of file module.class.php */ diff --git a/modules/module/queries/deleteTriggers.xml b/modules/module/queries/deleteTriggers.xml new file mode 100644 index 000000000..07ad95f19 --- /dev/null +++ b/modules/module/queries/deleteTriggers.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file