예제 #1
0
 /**
  * Return all of the core maintenance scripts
  * @return array
  */
 protected static function getCoreScripts()
 {
     if (!self::$mCoreScripts) {
         self::disableSetup();
         $paths = array(dirname(__FILE__), dirname(__FILE__) . '/gearman', dirname(__FILE__) . '/language', dirname(__FILE__) . '/storage');
         self::$mCoreScripts = array();
         foreach ($paths as $p) {
             $handle = opendir($p);
             while (($file = readdir($handle)) !== false) {
                 if ($file == 'Maintenance.php') {
                     continue;
                 }
                 $file = $p . '/' . $file;
                 if (is_dir($file) || !strpos($file, '.php') || strpos(file_get_contents($file), '$maintClass') === false) {
                     continue;
                 }
                 require $file;
                 $vars = get_defined_vars();
                 if (array_key_exists('maintClass', $vars)) {
                     self::$mCoreScripts[$vars['maintClass']] = $file;
                 }
             }
             closedir($handle);
         }
     }
     return self::$mCoreScripts;
 }