protected function shouldProcessRoute(Route $route) { $middlewareRouteFilterConfig = $this->settings['middleware'][$this->getConfigKey()]; $filterMode = $this->getFilterModeFromFilterConfig($middlewareRouteFilterConfig); $routeNames = $middlewareRouteFilterConfig['route_names']; $result = in_array($route->getName(), $routeNames); return $filterMode === static::INCLUSION ? $result : !$result; }
protected function processAtRoute(Route $route) { $configKeyName = 'middleware.' . $this->getConfigKey(); $middlewareRouteFilterConfig = $this->app->config($configKeyName); $filterMode = $this->getFilterModeFromFilterConfig($middlewareRouteFilterConfig); $routeNames = $middlewareRouteFilterConfig['route_names']; $result = in_array($route->getName(), $routeNames); return $filterMode === static::INCLUSION ? $result : !$result; }
/** * Api annotation * * if you set the \@api annotation this text will be proccess like * api description that can be access with app->getApi(), you must set the version * of the api description. * * if you set the @Route annotation the path will be proccesed like a path * definition for this controller and configured in the routing rutine. The * \@RouteName annotation is optional and can be omited, if is omited the route * name will be configured in base of the route path. * * @Route /new/example * @RouteName _new_example * @api example.gui * * @param \Slim\Http\Request $request * @param \Slim\Http\Response $response * @param \Slim\Route $route */ public function indexAction($request, $response, $route) { /** * You can use the next params * The current request, response and the route * */ return "Hello World !! " . $route->getName(); }
/** * Get the route information for a given route. * * @param Route $route * @return array */ protected function getRouteInformation(Route $route) { $result = []; $result['uri'] = $route->getMethods()[0] . ' ' . $route->getPattern(); $result['name'] = $route->getName() ?: ''; $result['group'] = ''; foreach ($route->getGroups() as $group) { $result['group'] .= $group->getPattern(); } $callable = $route->getCallable(); $result['middleware'] = []; foreach ($route->getMiddleware() as $middleware) { $result['middleware'][] = Closure::bind(function () { return get_class($this->callable); }, $middleware, DeferredCallable::class)->__invoke(); } if (is_array($callable)) { $result['callable'] = get_class($callable[0]) . ':' . $callable[1]; $reflector = new ReflectionMethod($callable[0], $callable[1]); } elseif ($callable instanceof Closure) { $result['callable'] = $this->formatVar($callable); $reflector = new ReflectionFunction($callable); } elseif (is_object($callable)) { $result['callable'] = get_class($callable); $reflector = new ReflectionMethod($callable, '__invoke'); } else { $result['callable'] = $callable; $callable = explode(':', $callable); if (isset($callable[1])) { $reflector = new ReflectionMethod($callable[0], $callable[1]); } else { $reflector = new ReflectionMethod($callable, '__invoke'); } } $result['file'] = $reflector->getFileName() . ':' . $reflector->getStartLine() . '-' . $reflector->getEndLine(); return $result; }