interface StreamWrapperManagerInterface (View source)

Provides a StreamWrapper manager.

Methods

array
getWrappers(int $filter = StreamWrapperInterface::ALL)

Provides Drupal stream wrapper registry.

array
getNames(int $filter = StreamWrapperInterface::ALL)

Returns registered stream wrapper names.

array
getDescriptions(int $filter = StreamWrapperInterface::ALL)

Returns registered stream wrapper descriptions.

getViaScheme(string $scheme)

Returns a reference to the stream wrapper class responsible for a scheme.

getViaUri(string $uri)

Returns a reference to the stream wrapper class responsible for a URI.

string|bool
getClass(string $scheme)

Returns the stream wrapper class name for a given scheme.

registerWrapper(string $scheme, string $class, int $type)

Registers stream wrapper with PHP.

static string|bool
getTarget(string $uri)

Returns the part of a URI after the schema.

string
normalizeUri(string $uri)

Normalizes a URI by making it syntactically correct.

static string|bool
getScheme(string $uri)

Returns the scheme of a URI (e.g. a stream).

bool
isValidScheme(string $scheme)

Checks that the scheme of a stream URI is valid.

bool
isValidUri(string $uri)

Determines whether the URI has a valid scheme for file API operations.

Details

array getWrappers(int $filter = StreamWrapperInterface::ALL)

Provides Drupal stream wrapper registry.

A stream wrapper is an abstraction of a file system that allows Drupal to use the same set of methods to access both local files and remote resources.

Provide a facility for managing and querying user-defined stream wrappers in PHP. PHP's internal stream_get_wrappers() doesn't return the class registered to handle a stream, which we need to be able to find the handler for class instantiation.

If a module registers a scheme that is already registered with PHP, the existing scheme will be unregistered and replaced with the specified class.

A stream is referenced as "scheme://target".

The optional $filter parameter can be used to retrieve only the stream wrappers that are appropriate for particular usage. For example, this returns only stream wrappers that use local file storage:

Parameters

int $filter

(Optional) Filters out all types except those with an on bit for each on bit in $filter. For example, if $filter is StreamWrapperInterface::WRITE_VISIBLE, which is equal to (StreamWrapperInterface::READ | StreamWrapperInterface::WRITE | StreamWrapperInterface::VISIBLE), then only stream wrappers with all three of these bits set are returned. Defaults to StreamWrapperInterface::ALL, which returns all registered stream wrappers.

Return Value

array

An array keyed by scheme, with values containing an array of information about the stream wrapper, as returned by hook_stream_wrappers(). If $filter is omitted or set to StreamWrapperInterface::ALL, the entire Drupal stream wrapper registry is returned. Otherwise only the stream wrappers whose 'type' bitmask has an on bit for each bit specified in $filter are returned.

array getNames(int $filter = StreamWrapperInterface::ALL)

Returns registered stream wrapper names.

Parameters

int $filter

(Optional) Filters out all types except those with an on bit for each on bit in $filter. For example, if $filter is StreamWrapperInterface::WRITE_VISIBLE, which is equal to (StreamWrapperInterface::READ | StreamWrapperInterface::WRITE | StreamWrapperInterface::VISIBLE), then only stream wrappers with all three of these bits set are returned. Defaults to StreamWrapperInterface::ALL, which returns all registered stream wrappers.

Return Value

array

Stream wrapper names, keyed by scheme.

array getDescriptions(int $filter = StreamWrapperInterface::ALL)

Returns registered stream wrapper descriptions.

Parameters

int $filter

(Optional) Filters out all types except those with an on bit for each on bit in $filter. For example, if $filter is StreamWrapperInterface::WRITE_VISIBLE, which is equal to (StreamWrapperInterface::READ | StreamWrapperInterface::WRITE | StreamWrapperInterface::VISIBLE), then only stream wrappers with all three of these bits set are returned. Defaults to StreamWrapperInterface::ALL, which returns all registered stream wrappers.

Return Value

array

Stream wrapper descriptions, keyed by scheme.

StreamWrapperInterface|bool getViaScheme(string $scheme)

Returns a reference to the stream wrapper class responsible for a scheme.

This helper method returns a stream instance using a scheme. That is, the passed string does not contain a "://". For example, "public" is a scheme but "public://" is a URI (stream). This is because the later contains both a scheme and target despite target being empty.

Note: the instance URI will be initialized to "scheme://" so that you can make the customary method calls as if you had retrieved an instance by URI.

Parameters

string $scheme

If the stream was "public://target", "public" would be the scheme.

Return Value

StreamWrapperInterface|bool

Returns a new stream wrapper object appropriate for the given $scheme. For example, for the public scheme a stream wrapper object (Drupal\Core\StreamWrapper\PublicStream). FALSE is returned if no registered handler could be found.

StreamWrapperInterface|bool getViaUri(string $uri)

Returns a reference to the stream wrapper class responsible for a URI.

The scheme determines the stream wrapper class that should be used by consulting the stream wrapper registry.

Parameters

string $uri

A stream, referenced as "scheme://target".

Return Value

StreamWrapperInterface|bool

Returns a new stream wrapper object appropriate for the given URI or FALSE if no registered handler could be found. For example, a URI of "private://example.txt" would return a new private stream wrapper object (Drupal\Core\StreamWrapper\PrivateStream).

string|bool getClass(string $scheme)

Returns the stream wrapper class name for a given scheme.

Parameters

string $scheme

Stream scheme.

Return Value

string|bool

Return string if a scheme has a registered handler, or FALSE.

registerWrapper(string $scheme, string $class, int $type)

Registers stream wrapper with PHP.

Parameters

string $scheme

The scheme of the stream wrapper.

string $class

The class of the stream wrapper.

int $type

The type of the stream wrapper.

static string|bool getTarget(string $uri)

Returns the part of a URI after the schema.

Parameters

string $uri

A stream, referenced as "scheme://target" or "data:target".

Return Value

string|bool

A string containing the target (path), or FALSE if none. For example, the URI "public://sample/test.txt" would return "sample/test.txt".

See also

StreamWrapperManagerInterface::getScheme

string normalizeUri(string $uri)

Normalizes a URI by making it syntactically correct.

A stream is referenced as "scheme://target".

The following actions are taken:

  • Remove trailing slashes from target
  • Trim erroneous leading slashes from target. e.g. ":///" becomes "://".

Parameters

string $uri

String reference containing the URI to normalize.

Return Value

string

The normalized URI.

static string|bool getScheme(string $uri)

Returns the scheme of a URI (e.g. a stream).

Parameters

string $uri

A stream, referenced as "scheme://target" or "data:target".

Return Value

string|bool

A string containing the name of the scheme, or FALSE if none. For example, the URI "public://example.txt" would return "public".

See also

StreamWrapperManagerInterface::getTarget

bool isValidScheme(string $scheme)

Checks that the scheme of a stream URI is valid.

Confirms that there is a registered stream handler for the provided scheme and that it is callable. This is useful if you want to confirm a valid scheme without creating a new instance of the registered handler.

Parameters

string $scheme

A URI scheme, a stream is referenced as "scheme://target".

Return Value

bool

Returns TRUE if the string is the name of a validated stream, or FALSE if the scheme does not have a registered handler.

bool isValidUri(string $uri)

Determines whether the URI has a valid scheme for file API operations.

There must be a scheme and it must be a Drupal-provided scheme like 'public', 'private', 'temporary', or an extension provided with hook_stream_wrappers().

Parameters

string $uri

The URI to be tested.

Return Value

bool

TRUE if the URI is valid.