uri-interop/impl
最新稳定版本:1.0.0
Composer 安装命令:
composer require uri-interop/impl
包简介
README 文档
README
Reference implementations of uri-interop/interface.
Installation
Install this package via Composer:
$ composer require uri-interop/impl
Implementations
Each implementation provides a different kind of mutability, ranging from readonly to fully-mutable, as well as a utility class that provides a factory, parser, normalizer, and resolver for that kind of URI.
ReadonlyUri
use UriInterop\Impl\Readonly\ReadonlyUri; use UriInterop\Impl\Readonly\ReadonlyUriUtility; $utility = new ReadonlyUriUtility(); $base = $utility->parseUri('https://example.com/foo/bar?zim=gir'); $relative = $utility->newUri( path: '/baz/dib', ); $resolved = $utility->resolveUri($base, $relative); $normalized = $utility->normalizeUri($resolved);
ImmutableUri
use UriInterop\Impl\Immutable\ImmutableUri; use UriInterop\Impl\Immutable\ImmutableUriUtility; $utility = new ImmutableUriUtility(); $base = $utility ->parseUri('https://example.com') ->withPath('/foo/bar'); $relative = $utility->newUri( path: '/baz/dib', ); $resolved = $utility->resolveUri($base, $relative); $normalized = $utility->normalizeUri($resolved);
MutableUri
use UriInterop\Impl\Mutable\MutableUri; use UriInterop\Impl\Mutable\MutableUriUtility; $utility = new ImmutableUriUtility(); $base = $utility->parseUri('https://example.com'); $base->path = '/foo/bar'; $relative = $utility->newUri( path: '/baz/dib', ); $resolved = $utility->resolveUri($base, $relative); $normalized = $utility->normalizeUri($resolved);
Abstract Classes
Uri
All of the URI classes descend from an abstract Uri class. It can serve as a base for your own URI implementations as well.
UriUtility
All of the utility classes descend from an abstract UriUtility class. It can serve as a base for your own utility implementations as well.
Note that you can use any kind of utility to normalize and resolve any other kind of URI. For example:
/** @var ReadonlyUriUtility $readonlyUtility */ $baseReadonlyUri = $readonlyUtility->parseUri('https://example.com'); assert($baseReadonlyUri instanceof ReadonlyUri); /** @var ImmutableUriUtility $immutableUtility */ $relativeImmutableUri = $immutableUtility->newUri( path: '/foo/bar' ); assert($relativeImmutableUri instanceof ImmutableUri); /** @var MutableUriUtility $mutableUtility */ $resolvedMutableUri = $mutableUtility->resolveUri( $baseReadonlyUri, $relativeReadonlyUri, ); assert($resolvedMutableUri instanceof MutableUri); $normalizedReadonlyUri = $readonlyUtility->normalizeUri( $resolvedMutableUri ); assert($normalizedReadonlyUri instanceof ReadonlyUri);
Support Classes
UriComponents
The UriComponents class contains static methods with all of the core logic for parsing, normalizing, and resolving. You can call these static methods from your own implementations.
统计信息
- 总下载量: 24
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-02-13