private function httpWork() { $RouteMatch = new RouteMatch(self::$routesFile); $parameters = $RouteMatch->work(); $routeController = $parameters->getControllerAndMethod(); $routeArguments = $parameters->getArguments(); if (is_callable($routeController)) { $return = call_user_func_array($routeController, $routeArguments); } else { $calssPosition = "\\App\\Http\\Controllers\\" . $parameters->getController(); $controllerInstance = call_user_func_array([$calssPosition, 'work'], [$parameters]); // middleware work $return = MiddlewareMatch::work($parameters); is_bool($return) && ($return = call_user_func_array([$controllerInstance, $parameters->getMethod()], $routeArguments)); } $this->setResponseContent($return); }
/** * @return SymfonyRoute */ public function getRoute() { if (!is_null($this->Route)) { return $this->Route; } if (is_null($this->parameters)) { return null; } if (isset($this->parameters['_route'])) { return $this->Route = RouteMatch::getRoute($this->parameters['_route']); } return null; }
public function redirectRoute($routeName, $statusCode = 302, array $headers = []) { $route = RouteMatch::getRoute($routeName); $uri = $route->getPath(); return $this->redirect($uri, $statusCode, $headers); }