/** * @param int $module_id * @return array */ function get_module_class($module_id) { $cache_cls_name_key = 'class_name'; $cache_cls_key = 'class'; $class_name = null; if (isset($this->_running_modules[$module_id][$cache_cls_key])) { $class = $this->_running_modules[$module_id][$cache_cls_key]; } else { $class_name = Module_ModuleManager_Register::functional_module_class_name($module_id); if ($class_name[Const_DataAccess::MREK_ERRNO] !== Const_Err_Base::ERR_OK) { return $class_name; } $class_name = $class_name[Const_DataAccess::MREK_DATA]; $class = new $class_name(); isset($this->_running_modules[$module_id]) || ($this->_running_modules[$module_id] = []); $this->_running_modules[$module_id][$cache_cls_name_key] = $class_name; $this->_running_modules[$module_id][$cache_cls_key] = $class; } return $class; }
/** * @param string $method_name * @param array $args */ private static function _run_all_modules_static_methods($method_name, $args = []) { $flow = Module_ControlCentre_FlowManager::current_flow(); $ordered_mids = $flow->get_in_order_modules(); // register hooks foreach ($ordered_mids as $_mid) { $_class = Module_ModuleManager_Register::functional_module_class_name($_mid); if ($_class['errno'] != Const_Err_Base::ERR_OK) { continue; } $_class = $_class['data']; if (method_exists($_class, $method_name)) { call_user_func_array([$_class, $method_name], $args); } } }