UriResolver
in package
Resolves a URI reference in the context of a base URI and the opposite way.
Tags
Table of Contents
- relativize() : UriInterface
- Returns the target URI as a relative reference from the base URI.
- removeDotSegments() : string
- Removes dot segments from a path and returns the new path.
- resolve() : UriInterface
- Converts the relative URI into a new URI that is resolved against the base URI.
- __construct() : mixed
- getRelativePath() : mixed
Methods
relativize()
Returns the target URI as a relative reference from the base URI.
public
static relativize(UriInterface $base, UriInterface $target) : UriInterface
This method is the counterpart to resolve():
(string) $target === (string) UriResolver::resolve($base, UriResolver::relativize($base, $target))
One use-case is to use the current request URI as base URI and then generate relative links in your documents to reduce the document size or offer self-contained downloadable document archives.
$base = new Uri('http://example.com/a/b/'); echo UriResolver::relativize($base, new Uri('http://example.com/a/b/c')); // prints 'c'. echo UriResolver::relativize($base, new Uri('http://example.com/a/x/y')); // prints '../x/y'. echo UriResolver::relativize($base, new Uri('http://example.com/a/b/?q')); // prints '?q'. echo UriResolver::relativize($base, new Uri('http://example.org/a/b/')); // prints '//example.org/a/b/'.
This method also accepts a target that is already relative and will try to relativize it further. Only a relative-path reference will be returned as-is.
echo UriResolver::relativize($base, new Uri('/a/b/c')); // prints 'c' as well
Parameters
- $base : UriInterface
-
Base URI
- $target : UriInterface
-
Target URI
Return values
UriInterface —The relative URI reference
removeDotSegments()
Removes dot segments from a path and returns the new path.
public
static removeDotSegments(string $path) : string
Parameters
- $path : string
Tags
Return values
string —resolve()
Converts the relative URI into a new URI that is resolved against the base URI.
public
static resolve(UriInterface $base, UriInterface $rel) : UriInterface
Parameters
- $base : UriInterface
-
Base URI
- $rel : UriInterface
-
Relative URI
Tags
Return values
UriInterface —__construct()
private
__construct() : mixed
Return values
mixed —getRelativePath()
private
static getRelativePath(UriInterface $base, UriInterface $target) : mixed
Parameters
- $base : UriInterface
- $target : UriInterface