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; }