Exemple #1
0
 /**
  * @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;
 }
Exemple #2
0
 /**
  * @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);
         }
     }
 }