Pandabot/vendor/league/uri-components/UriModifier.php

333 lines
10 KiB
PHP
Executable file

<?php
/**
* League.Uri (https://uri.thephpleague.com)
*
* (c) Ignace Nyamagana Butera <nyamsprod@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace League\Uri;
use League\Uri\Contracts\UriInterface;
use League\Uri\Exceptions\SyntaxError;
use Psr\Http\Message\UriInterface as Psr7UriInterface;
use Stringable;
/**
* @deprecated since version 7.0.0
* @codeCoverageIgnore
* @see Modifier
*/
class UriModifier
{
/*********************************
* Query resolution methods
*********************************/
/**
* Add the new query data to the existing URI query.
*/
public static function appendQuery(
Psr7UriInterface|UriInterface $uri,
Stringable|string|null $query
): Psr7UriInterface|UriInterface {
return Modifier::from($uri)->appendQuery($query)->getUri();
}
/**
* Merge a new query with the existing URI query.
*/
public static function mergeQuery(
Psr7UriInterface|UriInterface $uri,
Stringable|string|null $query
): Psr7UriInterface|UriInterface {
return Modifier::from($uri)->mergeQuery($query)->getUri();
}
/**
* Remove query data according to their key name.
*/
public static function removePairs(Psr7UriInterface|UriInterface $uri, string ...$keys): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->removeQueryPairsByKey(...$keys)->getUri();
}
/**
* Remove empty pairs from the URL query component.
*
* A pair is considered empty if it's name is the empty string
* and its value is either the empty string or the null value
*/
public static function removeEmptyPairs(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->removeEmptyQueryPairs()->getUri();
}
/**
* Remove query data according to their key name.
*/
public static function removeParams(Psr7UriInterface|UriInterface $uri, string ...$keys): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->removeQueryParameters(...$keys)->getUri();
}
/**
* Sort the URI query by keys.
*/
public static function sortQuery(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->sortQuery()->getUri();
}
/*********************************
* Host resolution methods
*********************************/
/**
* Add the root label to the URI.
*/
public static function addRootLabel(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->addRootLabel()->getUri();
}
/**
* Append a label or a host to the current URI host.
*
* @throws SyntaxError If the host cannot be appended
*/
public static function appendLabel(Psr7UriInterface|UriInterface $uri, Stringable|string|null $label): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->appendLabel($label)->getUri();
}
/**
* Convert the URI host part to its ascii value.
*/
public static function hostToAscii(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->hostToAscii()->getUri();
}
/**
* Convert the URI host part to its unicode value.
*/
public static function hostToUnicode(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->hostToUnicode()->getUri();
}
/**
* Prepend a label or a host to the current URI host.
*
* @throws SyntaxError If the host cannot be prepended
*/
public static function prependLabel(Psr7UriInterface|UriInterface $uri, Stringable|string|null $label): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->prependLabel($label)->getUri();
}
/**
* Remove host labels according to their offset.
*/
public static function removeLabels(Psr7UriInterface|UriInterface $uri, int ...$keys): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->removeLabels(...$keys)->getUri();
}
/**
* Remove the root label to the URI.
*/
public static function removeRootLabel(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->removeRootLabel()->getUri();
}
/**
* Remove the host zone identifier.
*/
public static function removeZoneId(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->removeZoneId()->getUri();
}
/**
* Replace a label of the current URI host.
*/
public static function replaceLabel(
Psr7UriInterface|UriInterface $uri,
int $offset,
Stringable|string|null $label
): Psr7UriInterface|UriInterface {
return Modifier::from($uri)->replaceLabel($offset, $label)->getUri();
}
/*********************************
* Path resolution methods
*********************************/
/**
* Add a new basepath to the URI path.
*/
public static function addBasePath(Psr7UriInterface|UriInterface $uri, Stringable|string $path): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->addBasePath($path)->getUri();
}
/**
* Add a leading slash to the URI path.
*/
public static function addLeadingSlash(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->addLeadingSlash()->getUri();
}
/**
* Add a trailing slash to the URI path.
*/
public static function addTrailingSlash(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->addTrailingSlash()->getUri();
}
/**
* Append a new segment or a new path to the URI path.
*/
public static function appendSegment(Psr7UriInterface|UriInterface $uri, Stringable|string $segment): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->appendSegment($segment)->getUri();
}
/**
* Convert the Data URI path to its ascii form.
*/
public static function dataPathToAscii(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->dataPathToAscii()->getUri();
}
/**
* Convert the Data URI path to its binary (base64encoded) form.
*/
public static function dataPathToBinary(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->dataPathToBinary()->getUri();
}
/**
* Prepend an new segment or a new path to the URI path.
*/
public static function prependSegment(
Psr7UriInterface|UriInterface $uri,
Stringable|string $segment
): Psr7UriInterface|UriInterface {
return Modifier::from($uri)->prependSegment($segment)->getUri();
}
/**
* Remove a basepath from the URI path.
*/
public static function removeBasePath(
Psr7UriInterface|UriInterface $uri,
Stringable|string $path
): Psr7UriInterface|UriInterface {
return Modifier::from($uri)->removeBasePath($path)->getUri();
}
/**
* Remove dot segments from the URI path.
*/
public static function removeDotSegments(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->removeDotSegments()->getUri();
}
/**
* Remove empty segments from the URI path.
*/
public static function removeEmptySegments(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->removeEmptySegments()->getUri();
}
/**
* Remove the leading slash from the URI path.
*/
public static function removeLeadingSlash(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->removeLeadingSlash()->getUri();
}
/**
* Remove the trailing slash from the URI path.
*/
public static function removeTrailingSlash(Psr7UriInterface|UriInterface $uri): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->removeTrailingSlash()->getUri();
}
/**
* Remove path segments from the URI path according to their offsets.
*/
public static function removeSegments(Psr7UriInterface|UriInterface $uri, int ...$keys): Psr7UriInterface|UriInterface
{
return Modifier::from($uri)->removeSegments(...$keys)->getUri();
}
/**
* Replace the URI path basename.
*/
public static function replaceBasename(
Psr7UriInterface|UriInterface $uri,
Stringable|string $basename
): Psr7UriInterface|UriInterface {
return Modifier::from($uri)->replaceBasename($basename)->getUri();
}
/**
* Replace the data URI path parameters.
*/
public static function replaceDataUriParameters(
Psr7UriInterface|UriInterface $uri,
Stringable|string $parameters
): Psr7UriInterface|UriInterface {
return Modifier::from($uri)->replaceDataUriParameters($parameters)->getUri();
}
/**
* Replace the URI path dirname.
*/
public static function replaceDirname(
Psr7UriInterface|UriInterface $uri,
Stringable|string $dirname
): Psr7UriInterface|UriInterface {
return Modifier::from($uri)->replaceDirname($dirname)->getUri();
}
/**
* Replace the URI path basename extension.
*/
public static function replaceExtension(
Psr7UriInterface|UriInterface $uri,
Stringable|string $extension
): Psr7UriInterface|UriInterface {
return Modifier::from($uri)->replaceExtension($extension)->getUri();
}
/**
* Replace a segment from the URI path according its offset.
*/
public static function replaceSegment(
Psr7UriInterface|UriInterface $uri,
int $offset,
Stringable|string $segment
): Psr7UriInterface|UriInterface {
return Modifier::from($uri)->replaceSegment($offset, $segment)->getUri();
}
}