Exemplo 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();
     });
 }
Exemplo n.º 2
0
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;
        }