Esempio n. 1
0
 public function getContext(RequestInterface $request, RouteCollectionInterface $routes)
 {
     if ($routes->isEmpty()) {
         return null;
     }
     $path = $request->getPath();
     foreach ($routes->getRoutes() as $routeName => $route) {
         $compiled = $this->compiler->compile($route);
         if (!preg_match($compiled->getRegexp(), $path, $matches)) {
             continue;
         }
         list($controllerName, $actionName) = explode('#', $route->getController(), 2);
         $arguments = $this->mergeArguments($matches, $compiled);
         $contextClass = $this->contextClass;
         return new $contextClass($controllerName, $actionName, $arguments, $routes->getModuleName(), $routeName);
     }
     return null;
 }
Esempio n. 2
0
 public function getContext(RequestInterface $request, RouteCollectionInterface $routes)
 {
     $path = $request->getPath();
     if ($path == '/index') {
         $request->redirectTo('/');
     }
     $arguments = explode('/', substr($path, 1));
     $controller = array_shift($arguments);
     $controllerName = $controller ? ucfirst($controller) : 'Index';
     $actionName = array_shift($arguments);
     if ($actionName == 'index') {
         $request->redirectTo("/{$controller}");
     }
     if (empty($actionName)) {
         $actionName = 'index';
     }
     $contextClass = $this->contextClass;
     return new $contextClass($controllerName, $actionName, $arguments, $routes->getModuleName());
 }
Esempio n. 3
0
 public function getContext(RequestInterface $request)
 {
     $routes = $this->getSubdomainRoutes($request->getSubdomain());
     return $this->resolvers->getContext($request, $routes);
 }