/** * Binds a list of middleware to a Slim route * @param \Slim\Route $route Slim Route instance * @param array $middlewares Array of callable middleware */ protected function bindMiddlewares(\Slim\Route $route, array $middlewares) { foreach ($middlewares as $mw) { if (is_callable($mw)) { $route->setMiddleware($mw); } elseif (is_string($mw)) { $mwSplit = explode(':', $mw); $mwClass = $mwSplit[0]; $mwMethod = $mwSplit[1]; $route->setMiddleware(function () use($mwClass, $mwMethod) { $middleware = $this->register($mwClass); call_user_func(array($middleware, $mwMethod)); }); } } }
/** * Add a route object to the router * @param \Slim\Route $route The Slim Route */ public function map(\Slim\Route $route) { list($groupPattern, $groupMiddleware) = $this->processGroups(); $route->setPattern($groupPattern . $route->getPattern()); $this->routes[] = $route; foreach ($groupMiddleware as $middleware) { $route->setMiddleware($middleware); } }