Здравствуйте, у меня есть роутер который обрабатывает URl и взависемости от него показывает юзеру выбранную страницу но есть две проблемы: 1. Как сделать чтобы роутер инклудил 404.php если юзер ввел неправильный URl? 2. Я хочу сделать общедоступный профиль пользователя, где вся информация будет выводится взависемости от GET параметра типа: "q=*тут ник юзера*" но когда я указываю GET параметр роутер выводит ошибку что, страница с таким URL не найдена, помогите, как решить?
Код роутера:
/*
* Holds the registered routes
*
* @var array $routes
*/
$routes = [];
class Route {
/**
* Register a new route
*
* @param $action string
* @param \Closure $callback Called when current URL matches provided action
*/
public static function get($action, Closure $callback)
{
global $routes;
$action = trim($action, '/');
$routes[$action] = $callback;
}
/**
* Dispatch the router
*
* @param $action string
*/
public static function dispatch($action)
{
global $routes;
$action = trim($action, '/');
$callback = $routes[$action];
echo call_user_func($callback);
}
}
Формат запроса для роутера:
Route::get('/URL', function() {
*Код*
});
...
$action = $_SERVER['REQUEST_URI'];
Route::dispatch($action);
Мой код реализации общедоступного профиля:
Route::get('/profile?q=', function() {
include 'includes/profile.php?q=$_POST['username']';
});
$action = $_SERVER['REQUEST_URI'];
Route::dispatch($action);
P.S: я пробовал много разных способ но все равно не получалось. Более опытные веб-разработчики поделитесь опытом.