コード例 #1
0
ファイル: UriResolver.php プロジェクト: eloquent/schemer
 /**
  * @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);
 }