/
vagan
/
Framework
Обзор
Документация
Войти
/
vagan
/
Framework
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
application/core/Router.php
61 строка
1 KB
Vagan
Add error page and db requests
23 фев 2021, 14:40
23 фев 2021, 14:40
1628276
Код
Авторство
О чём код?
<?php namespace application\core; use application\core\View; class Router { protected $routes = []; protected $params = []; public function __construct() { $arr = require 'application/config/Routes.php'; foreach ($arr as $key => $value) { $this->add($key, $value); } } public function add($route, $params) { $route = '#^' . $route . '$#'; $this->routes[$route] = $params; } public function match() { $url = trim(str_replace('Framework/', '', $_SERVER['REQUEST_URI']), '/'); foreach ($this->routes as $route => $params) { if (preg_match($route, $url, $matches)) { $this->params = $params; return true; } } return false; } public function run() { if ($this->match()) { $path = 'application\controllers\\' . ucfirst($this->params['controller']) . 'Controller'; if (class_exists($path)) { $action = $this->params['action'] . 'Action'; if (method_exists($path, $action)) { $controller = new $path($this->params); $controller->$action(); } else { View::errorCode(404); } } else { View::errorCode(404); } } else { View::errorCode(500); } } }