public static function route() { $routeList = RouteHelper::readRouteFile(); $base_url = RouteHelper::getCurrentUri(); $requestMethod = $_SERVER['REQUEST_METHOD']; $controllerName = "App" . '\\' . "Controllers" . '\\' . $routeList[$requestMethod . ":" . $base_url]->controller; $methodName = $routeList[$requestMethod . ":" . $base_url]->controllerMethod; $methodName = trim($methodName); if (class_exists($controllerName)) { $controller = new $controllerName(); $controller->{$methodName}(); } else { $explodedUri = explode('/', $base_url); if ($explodedUri[1] == "instance" && strlen($explodedUri[2]) == 25) { $controller = new InstanceController(); $controller->show($explodedUri[2]); } else { if ($explodedUri[1] == "score" && strlen($explodedUri[2]) == 25) { $controller = new ScoreController(); $controller->index($explodedUri[2]); } else { echo "404 Not Found"; } } } }
/** * Recursive adding of self key * @param BaseModel $model * @param $array */ protected function addSelfKey(BaseModel $model, $array) { if ($route = RouteHelper::getRoute($model)) { $array = ['_self' => $route] + $array; } return $array; }
<?php function __autoload($class_name) { $class_name = str_replace('\\', '/', $class_name); include '../' . $class_name . '.php'; } use App\Helpers\RouteHelper; RouteHelper::route();
public function testBadRoute() { $baseModel = m::mock('App\\Models\\BaseModel')->makePartial(); \App\Helpers\RouteHelper::getRoute($baseModel); $this->assertTrue(\App\Helpers\RouteHelper::$badRoutes[get_class($baseModel)]); }