Pular para o conteúdo principal

Factory Methods

The Uri class provides static factory methods for flexible object creation.

getInstance()

The primary factory method that accepts multiple input types.

public static function getInstance(
string|UriInterface|null $uri = null
): UriInterface

Parameters:

  • $uri - Can be a string, a UriInterface instance, or null

Returns: A new Uri instance

Create from String

$uri = Uri::getInstance("https://example.com/path?query=value#fragment");

Create from UriInterface

Useful for converting other PSR-7 URI implementations:

$otherUri = new SomeOtherPsr7Uri("https://example.com");
$uri = Uri::getInstance($otherUri);
informação

When passed a UriInterface, the method converts it to a string first, then parses it as a new Uri instance.

Create Empty URI

$uri = Uri::getInstance();
// or
$uri = Uri::getInstance(null);

Deprecated Methods

The following methods are deprecated but still available for backward compatibility:

getInstanceFromString()

/**
* @deprecated Use getInstance() instead
*/
public static function getInstanceFromString(
string|null $uriString = null
): UriInterface

Migration:

// Old way
$uri = Uri::getInstanceFromString("https://example.com");

// New way
$uri = Uri::getInstance("https://example.com");

getInstanceFromUri()

/**
* @deprecated Use getInstance() instead
*/
public static function getInstanceFromUri(UriInterface $uri): UriInterface

Migration:

// Old way
$uri = Uri::getInstanceFromUri($otherUri);

// New way
$uri = Uri::getInstance($otherUri);

Constructor

You can also use the constructor directly:

$uri = new Uri("https://example.com/path");

However, the static factory method getInstance() is recommended for consistency and flexibility.