сколько столько?дохрена.
class MyClass
{
function foo(){
print_r($_REQUEST);
}
function bar(){
print_r($_REQUEST);
}
}
$routes = [
['~/user/([0-9]+)/?~', ['id'], ['MyClass', 'foo']],
['~/storage/([a-z]+)/([0-9]+)/?~', ['category_name', 'id'], ['MyClass', 'bar']],
];
foreach ($routes as $route) {
if (preg_match($route[0], $_SERVER['REQUEST_URI'], $params)) {
array_shift($params);
if (count($params) <> count($route[1])) {
throw new \RuntimeException('error');
}
foreach ($route[1] as $key => $keyname) {
$_REQUEST[$keyname] = $params[$key];
}
$class = $route[2][0];
$method = $route[2][1];
break;
}
}
if (isset($class) && isset($method)) {
(new $class)->$method();
} else {
echo '404';
}