Skip navigation
Help

hook_stream_wrappers

7 system.api.php 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()

1 invocation of hook_stream_wrappers()

File

drupal/modules/system/system.api.php, line 2487
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.'),
      // 'type' can be omitted to use the default of STREAM_WRAPPERS_NORMAL
    ), 
    '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,
    ),
  );
}