예제 #1
0
 /**
  * @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;
 }
예제 #2
0
 /**
  * @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;
 }