承接 uri-interop/impl 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-02-13