projectbased/updates/baseline/app/Router.php
SHA-256: 7903341d408fc7978609ddc6cbc5e267cd3f9eeeae9c09287c1593ae9545c48a
<?php
namespace App;
use App\Controllers\HomeController;
use App\Controllers\AuthController;
use App\Controllers\DashboardController;
use App\Controllers\ProjectsController;
use App\Controllers\ProfileController;
use App\Controllers\NeedsController;
use App\Controllers\AdminController;
final class Router {
public static function dispatch(string $route): void {
$route = trim($route);
switch ($route) {
case 'home': (new HomeController())->index(); break;
case 'login': (new AuthController())->login(); break;
case 'logout': (new AuthController())->logout(); break;
case 'register': (new AuthController())->register(); break;
case 'dashboard': (new DashboardController())->index(); break;
case 'projects': (new ProjectsController())->index(); break;
case 'project_new': (new ProjectsController())->create(); break;
case 'project_view': (new ProjectsController())->view(); break;
case 'project_join': (new ProjectsController())->join(); break;
case 'project_vote': (new ProjectsController())->vote(); break;
case 'project_veto': (new ProjectsController())->veto(); break;
case 'profile': (new ProfileController())->index(); break;
case 'skill_add': (new ProfileController())->addSkill(); break;
case 'needs': (new NeedsController())->index(); break;
case 'need_new': (new NeedsController())->create(); break;
case 'admin_audit': (new AdminController())->audit(); break;
default:
http_response_code(404);
(new HomeController())->notFound();
}
}
}