/** * @param Request $request * @param Route $route * @return Request|NotFound */ function __invoke(Request $request, Route $route) { if ($request->controller()) { return $request; } $options = $this->options($route); $params = $request->params(); $action = $this->format($this->action($params, $options), $options); $controller = $this->format($this->controller($params, $options), $options); $name = $this->name($action, $controller, $options); if ($this->invalid($action, $controller, $this->replacement($options))) { return null; } $controller = $this->match($name, $this->load($name)); if (!$controller) { return new NotFound(); } $request[Arg::CONTROLLER] = $controller; return $request; }
/** * @param Request $request * @param Route $route * @return Request */ function __invoke(Request $request, Route $route) { ($middleware = $this->middleware($request->controller(), $route[Arg::MIDDLEWARE])) && ($request[Arg::CONTROLLER] = $middleware); return $request; }