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(); }); }
25.04.2010 Добавлено кэширование modified 09.05.2010 Добавлена поддерж php файлов и возможность передачи get параметров запрашиваемому файлу */ //..'xls'=>'?-pages/xls/xls.php?src=' namespace infrajs\doc; use infrajs\path\Path; use infrajs\ans\Ans; use infrajs\access\Access; use infrajs\load\Load; $isrc = Ans::GET('src'); //Path::toutf(urldecode($_SERVER['QUERY_STRING'])); Access::modified(); $fdata = Load::srcInfo($isrc); $src = Access::cache('files_get_php', function ($isrc) { $src = Path::theme($isrc); if ($src) { return $src; } $fdata = Load::srcInfo($isrc); $folder = Path::theme($fdata['folder']); if (!Path::theme($folder)) { return false; } array_map(function ($file) use(&$result, $fdata) { if ($file[0] == '.') { return; }