PHP/MySQL | Роутинг
Вот делал для сайта роутинг,может кому надо))Решил сделать для себя автоматизированные...
<?php
/**
* @package StrongCMS by MTV
*/
namespace system;
class Route
{
protected static function routes()
{
return [
'/' => '\application\controllers\Welcome@index',
'/signup' => '\application\controllers\Signup@index',
'/signup/confirm' => '\application\controllers\Signup@confirm'
];
}
protected static function getUrl()
{
$string = strip_tags(stripslashes($_SERVER['REQUEST_URI']));
return filter_var(trim($string), FILTER_SANITIZE_URL);
}
public static function start()
{
$found = FALSE;
foreach(self::routes() as $regex => $value)
{
if(preg_match('/^' . str_replace('/', '\/', $regex) . '\/?$/i', self::getUrl(), $matches)) {
$found = TRUE;
$routes = explode('@', $value);
if(class_exists($routes[0])) {
$class = new $routes[0]();
if(method_exists($class, $routes[1])) {
array_shift($matches);
return call_user_func_array(array($class, $routes[1]), $matches);
}
}
}
}
if($found == FALSE) {
exit('Page does not exist.');
}
}
}
?>