function hook_stream_wrappers in Drupal 7
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:
- 'name' A short string to name the wrapper.
- 'class' A string specifying the PHP class that implements the DrupalStreamWrapperInterface interface.
- 'description' A string with a short description of what the wrapper does.
- 'type' (Optional) A bitmask of flags indicating what type of streams this wrapper will access - local or remote, readable and/or writeable, etc. Many shortcut constants are defined in stream_wrappers.inc. Defaults to STREAM_WRAPPERS_NORMAL which includes all of these bit flags:
See also
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 - Hooks provided by Drupal core and the System module.
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,
),
);
}