コード例 #1
0
ファイル: moduleManager.php プロジェクト: decima/M2-platine
 public static function scan_all_modules()
 {
     $Directory = new RecursiveDirectoryIterator('./modules');
     $Iterator = new RecursiveIteratorIterator($Directory);
     $regex = new RegexIterator($Iterator, '/^.+\\module.php$/i', RecursiveRegexIterator::GET_MATCH);
     $systemModules = get_all_classes_implementing_interfaces("SystemModule");
     $res = array();
     $enabled = method_invoke_all("info");
     $modules = array();
     $systemModules = array_map('strtolower', $systemModules);
     $available = array();
     foreach ($enabled as $k => $e) {
         $modules[$e['name']] = $e;
         $modules[$e['name']]["path"] = "";
         $modules[$e['name']]["system_module"] = in_array(strtolower($e["name"]), $systemModules) ? "1" : "0";
         $modules[$e['name']]["enabled"] = 1;
     }
     foreach ($regex as $item) {
         $data = file_get_contents($item[0]);
         if (preg_match("/@moduleName ([A-Za-z0-9_]+)/", $data, $matches)) {
             include_once $item[0];
             $res = method_invoke($matches[1], "info");
             $res["path"] = $item[0];
             $res["system_module"] = 0;
             $res['enabled'] = 0;
             $available[$matches[1]] = $res;
         }
     }
     foreach ($available as $k => $v) {
         if (in_array($k, array_keys($modules))) {
             $modules[$k]['path'] = $v['path'];
         } else {
             $modules[$k] = $v;
         }
     }
     return $modules;
 }
コード例 #2
0
ファイル: hooks.php プロジェクト: decima/M2-platine
function get_all_modules($interface = "Module")
{
    return get_all_classes_implementing_interfaces($interface);
}