Вход Регистрация
Файл: index.php
Строк: 31
<?php
/**
 * Neiron Core
 * @author KpuTuK 
 * @link https://github.com/KpuTuK
 **/
 
define('ROOTPATH', realpath(__DIR__) .'/');
 
define('SYSPATH', ROOTPATH .'System/');
 
define('MODULEPATH', ROOTPATH .'Modules/');
 
define('CACHEPATH', ROOTPATH .'Cache');
 
define('TPLPATH', ROOTPATH .'Templates/');
 
// Подключаем файл функций
require_once SYSPATH .'Functions.php';
 
// Подключаем файл настроек
require_once SYSPATH .'Bootstrap.php';
// Ядро
require_once SYSPATH .'Core.php';
// Вывод
$GLOBALS['_APP']['output'] = (string)'';
// Флаг наличия модуля
$appExists = false;
// Прогоняем массив роутов
foreach ((array)$GLOBALS['_APP']['routes'] as $route) {
    
// Если в паттерне роута обнаружен шаблон
    
if (false !== strpos($route['pattern'], '{')) {
        
// Обрабатываем его через регулярку
        
$route['pattern'] = preg_replace_callback('#{(w+):(w+)}#', function ($match) {
            
$patterns = array(
                
'i' => '[0-9]+',
                
's' => '[a-zA-Z0-9.-_%]+',
            );
            list(, 
$name, $prce) = $match;
            return 
'(?<' . $name . '>' . strtr($prce, $patterns) . ')';
        }, 
$route['pattern']);
    }
    
// Проверяем не совпадает ли наш шаблон с текущим URI
    
if (rtrim($_SERVER['REQUEST_URI'], '/') === rtrim($route['pattern'], '/')) {
        
// Если найдена директория и файл роута
        
if (file_exists(MODULEPATH . $route['dir'] . DIRECTORY_SEPARATOR . $route['file'] .'.php')) {
            
$appExists = true;
            
// Подключаем их
            
require_once MODULEPATH . $route['dir'] . DIRECTORY_SEPARATOR . $route['file'] .'.php';
            break;
        }
    
// Проверяем наш шаблон регуляркой
    
} elseif(preg_match('#^' . rtrim($route['pattern'], '/') . '$#s', rtrim($_SERVER['REQUEST_URI'], '/'), $matches)) {
        
// Удаляем все числовые ключи!!!!!
        
foreach ($matches as $key => $value) {
            if (
is_int($key)) {
                unset(
$matches[$key]);
            }
        }
        
// Записываем все получившеися значечия в $_GET
        
$GLOBALS['_GET'] = array_merge($GLOBALS['_GET'], $matches);
        
// Если найдена директория и файл роута
        
if (file_exists(MODULEPATH . $route['dir'] . DIRECTORY_SEPARATOR . $route['file'] .'.php')) {
            
$appExists = true;
            
// Подключаем их
            
require_once MODULEPATH . $route['dir'] . DIRECTORY_SEPARATOR . $route['file'] .'.php';
            break;
        }
    }
}
if (
$appExists === false) {
    
// Или выдаем 404
    
$GLOBALS['_GET']['code'] = 404;
    require 
MODULEPATH .'Home/err.php';
}
// Чистим БВ
ob_end_flush();
// Выдаем страничку
echo $GLOBALS['_APP']['output'];
// Завершаем скриптег
exit;
Онлайн: 1
Реклама