function hook_stream_wrappers

Registers PHP stream wrapper implementations associated with a module.

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, it will be unregistered and replaced with the specified class.

Return value

A nested array, keyed first by scheme name ("public" for "public://"), then keyed by the following values:

See also

file_get_stream_wrappers()

hook_stream_wrappers_alter()

system_stream_wrappers()

Related topics

3 functions implement hook_stream_wrappers()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

file_get_stream_wrappers in includes/file.inc
Provides Drupal stream wrapper registry.
file_test_stream_wrappers in modules/simpletest/tests/file_test.module
Implements hook_stream_wrappers().
system_stream_wrappers in modules/system/system.module
Implements hook_stream_wrappers().
1 invocation of hook_stream_wrappers()
file_get_stream_wrappers in includes/file.inc
Provides Drupal stream wrapper registry.

File

modules/system/system.api.php, line 2777

Code

function hook_stream_wrappers() {
    return array(
        'public' => array(
            'name' => t('Public files'),
            'class' => 'DrupalPublicStreamWrapper',
            'description' => t('Public local files served by the webserver.'),
            'type' => STREAM_WRAPPERS_LOCAL_NORMAL,
        ),
        'private' => array(
            'name' => t('Private files'),
            'class' => 'DrupalPrivateStreamWrapper',
            'description' => t('Private local files served by Drupal.'),
            'type' => STREAM_WRAPPERS_LOCAL_NORMAL,
        ),
        'temp' => array(
            'name' => t('Temporary files'),
            'class' => 'DrupalTempStreamWrapper',
            'description' => t('Temporary local files for upload and previews.'),
            'type' => STREAM_WRAPPERS_LOCAL_HIDDEN,
        ),
        'cdn' => array(
            'name' => t('Content delivery network files'),
            'class' => 'MyModuleCDNStreamWrapper',
            'description' => t('Files served by a content delivery network.'),
        ),
        'youtube' => array(
            'name' => t('YouTube video'),
            'class' => 'MyModuleYouTubeStreamWrapper',
            'description' => t('Video streamed from YouTube.'),
            // A module implementing YouTube integration may decide to support using
            // the YouTube API for uploading video, but here, we assume that this
            // particular module only supports playing YouTube video.
'type' => STREAM_WRAPPERS_READ_VISIBLE,
        ),
    );
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.