Chris@0: routefield = $routefield; Chris@0: $this->target = $target; Chris@0: } Chris@0: Chris@0: /** Chris@0: * If the route has a non-null content and if that content class is in the Chris@0: * injected map, returns that controller. Chris@0: * Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function enhance(array $defaults, Request $request) Chris@0: { Chris@0: if (isset($defaults[$this->target])) { Chris@0: // no need to do anything Chris@0: return $defaults; Chris@0: } Chris@0: Chris@0: if (!isset($defaults[$this->routefield]) Chris@0: || !$defaults[$this->routefield] instanceof RouteObjectInterface Chris@0: ) { Chris@0: // we can't determine the content Chris@0: return $defaults; Chris@0: } Chris@0: /** @var $route RouteObjectInterface */ Chris@0: $route = $defaults[$this->routefield]; Chris@0: Chris@0: $content = $route->getContent(); Chris@0: if (!$content) { Chris@0: // we have no content Chris@0: return $defaults; Chris@0: } Chris@0: $defaults[$this->target] = $content; Chris@0: Chris@0: return $defaults; Chris@0: } Chris@0: }