/**
  * 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));
             });
         }
     }
 }
Example #2
0
 /**
  * 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);
     }
 }