Вход Регистрация
Файл: 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
Реклама