Esempio n. 1
0
 public static function init()
 {
     Once::exec(__FILE__, function () {
         //Список операций выполняющихся при любом запросе со спецсимволом в адресе [-~!] и при запросах без файлов
         //или при яном вызове в скрипте Router::init();
         //Собирается конфиг .infra.json из корня проекта
         //Теперь при первом обащении к классу расширения будет собираться его конфиг .infra.json из папки расширения
         Config::init();
         //Анализируется папка vendor Находятся все производители поддерживающие конфигурационные файлы .infra.json
         //Некий производитель angelcharly попадёт в список поиска, если у него есть библиотека с файлом .infra.json
         //Эту обработку можно убрать если производители прописаны вручную в config.path.search проекта
         //Без этой обработке, например, переопределения в кореновм .infra.json для расширения weather
         //не применятся к Weather::$conf и неinfrajs расширения будет работать со значениями по умолчанию
         //.infra.json в самих неinfrajs расширениях также не будет прочитан,
         //но значения конфига по умолчанию и так указаны в переменной класса, вроде Weather::$conf по этому не скажется на работе
         //В общем заполняем config.path.search путями до установленных расширений
         Search::init();
         //Автоматическая установка расширений
         //Cоздаются папка cache и для расширения mem создаётся папка cache/mem, если их нет
         //Наличие этих папок, например, обязательно для Search, который кэширует свою работу
         //Во время обновления запускаются тесты
         Update::init();
         //По дате авторизации админа выход и если браузер прислал информацию что у него есть кэш
         //Заголовок Cache-control:no-store в расширении Nostore::on() запретит создавать кэш, если станет ясно, что modfeied не нужен
         Access::modified();
         //Заголовки по умолчанию для Cache-Controll
         Nostore::init();
         //Вспомогательные заголовки с информацией о правах пользователя test debug admin
         Access::headers();
     });
 }
Esempio n. 2
0
 public static function init()
 {
     //Заполнять Path::$conf['search'] нужно после того как пройдёт инициализация конфигов .infra.json
     //Чтобы значения по умолчанию не заменили сгенерированные значения
     Config::init();
     if (Search::$conf["off"]) {
         return;
     }
     static::checkFS();
 }
Esempio n. 3
0
 public static function init()
 {
     Once::exec(__FILE__ . 'init', function () {
         $action = Ans::GET('-update');
         Config::init();
         $path = Path::$conf;
         if ($action) {
             Access::test(true);
             if (!Update::$is) {
                 Path::fullrmdir($path['cache']);
                 Update::exec();
             }
         }
         if ($path['fs'] && !Update::$is) {
             if (!is_dir($path['cache'])) {
                 Access::$conf['test'] = true;
                 Update::exec();
             }
             if (Access::isTest()) {
                 if (is_file($path['data'] . 'update')) {
                     unlink($path['data'] . 'update');
                     Access::$conf['test'] = true;
                     if (!Update::$is) {
                         Path::fullrmdir($path['cache']);
                         Update::exec();
                     }
                 }
             }
         }
         if (Update::$is) {
             if (is_file($path['data'] . 'update')) {
                 unlink($path['data'] . 'update');
             }
         }
     });
 }
Esempio n. 4
0
<?php

use infrajs\access\Access;
use infrajs\path\Path;
use infrajs\load\Load;
use infrajs\ans\Ans;
use infrajs\config\Config;
use infrajs\each\Each;
use infrajs\template\Template;
use infrajs\router\Router;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../');
    require_once 'vendor/autoload.php';
    Router::init();
}
Config::init();
Access::test(true);
header('Infrajs-Test: Start');
$type = Ans::GET('type');
/** type=auto - Запуск всех тестов. Выполняется из других скриптов Load::loadJSON('-tester/?type=auto');
 *  Если все result true выдать один положительный ответ result: true
 *  Если найдена ошибка то добавляется переадресация на страницу с ошибками type=errors без exit
 *  type=errors - показывает только ошибки и инструкцию для справления
 *  Если ошибок нет переадресовывает на -tester/
 **/
$ans = array();
$plugin = Ans::GET('plugin');
$conf = Config::get();
$list = array();
foreach ($conf as $name => $c) {
    if ($plugin && $plugin != $name) {
Esempio n. 5
0
 public static function &get($name = null)
 {
     if (!$name) {
         return Config::getAll();
     }
     Once::exec(__FILE__ . '::get' . $name, function () use($name) {
         Config::init();
         Config::load($name . '/.infra.json', $name);
         foreach (Path::$conf['search'] as $dir) {
             Config::load($dir . $name . '/.infra.json', $name);
         }
         if (!isset(Config::$conf[$name])) {
             $r = array();
             return $r;
         }
     });
     return Config::$conf[$name];
 }