/** * @param UriInterface $uri * @param UriInterface $baseUri * * @return UriInterface */ public function resolve(UriInterface $uri, UriInterface $baseUri) { $baseUriReflector = new ReflectionObject($baseUri); if (!$baseUriReflector->hasMethod('resolve')) { $baseUri = new Uri($baseUri->toString()); if ($uri instanceof Uri) { $uri = clone $uri; } else { $uri = new Uri($uri->toString()); } } elseif (!$uri instanceof $baseUri) { $uri = $baseUriReflector->newInstance($uri->toString()); } else { $uri = clone $uri; } return $uri->resolve($baseUri); }