Пример #1
0
 public static function &getAll()
 {
     Config::$all = true;
     Once::exec('Infrajs::Config::getAll', function () {
         Config::init();
         @header('Infrajs-Config-All: true');
         /**
          * Для того чтобы в текущем сайте можно было разрабатывать расширения со своим конфигом, 
          * нужно добавить путь до родительской папки с расширениями в path.config.search
          * Папки data может конфликтовать так как она содержит общий конфиг, 
          * А если родительская папка защитается за папку с расширениями папка .infra.json в data буде лишним
          **/
         $files = scandir('.');
         foreach ($files as $file) {
             if ($file[0] == '.') {
                 continue;
             }
             if (!is_dir($file)) {
                 continue;
             }
             if (in_array($file . '/', array(Path::$conf['cache'], Path::$conf['data']))) {
                 continue;
             }
             Config::load($file . '/.infra.json', $file);
         }
         $path =& Path::$conf;
         for ($i = 0; $i < sizeof($path['search']); $i++) {
             $tsrc = $path['search'][$i];
             if (!is_dir($tsrc)) {
                 continue;
             }
             $files = scandir($tsrc);
             foreach ($files as $file) {
                 if ($file[0] == '.') {
                     continue;
                 }
                 if (!is_dir($tsrc . $file)) {
                     continue;
                 }
                 Config::load($tsrc . $file . '/.infra.json', $file);
             }
         }
     });
     return Config::$conf;
 }