class PrivateStream

Same name in other branches
  1. 9 core/lib/Drupal/Core/StreamWrapper/PrivateStream.php \Drupal\Core\StreamWrapper\PrivateStream
  2. 8.9.x core/lib/Drupal/Core/StreamWrapper/PrivateStream.php \Drupal\Core\StreamWrapper\PrivateStream
  3. 10 core/lib/Drupal/Core/StreamWrapper/PrivateStream.php \Drupal\Core\StreamWrapper\PrivateStream

Drupal private (private://) stream wrapper class.

Provides support for storing privately accessible files with the Drupal file interface.

Hierarchy

Expanded class hierarchy of PrivateStream

4 files declare their use of PrivateStream
FileSystemForm.php in core/modules/system/src/Form/FileSystemForm.php
HtaccessWriter.php in core/lib/Drupal/Core/File/HtaccessWriter.php
ImageStyleCustomStreamWrappersTest.php in core/modules/image/tests/src/Kernel/ImageStyleCustomStreamWrappersTest.php
system.install in core/modules/system/system.install
Install, update and uninstall functions for the system module.

File

core/lib/Drupal/Core/StreamWrapper/PrivateStream.php, line 14

Namespace

Drupal\Core\StreamWrapper
View source
class PrivateStream extends LocalStream {
    
    /**
     * {@inheritdoc}
     */
    public static function getType() {
        return StreamWrapperInterface::LOCAL_NORMAL;
    }
    
    /**
     * {@inheritdoc}
     */
    public function getName() {
        return t('Private files');
    }
    
    /**
     * {@inheritdoc}
     */
    public function getDescription() {
        return t('Private local files served by Drupal.');
    }
    
    /**
     * {@inheritdoc}
     */
    public function getDirectoryPath() {
        return static::basePath();
    }
    
    /**
     * {@inheritdoc}
     */
    public function getExternalUrl() {
        $path = str_replace('\\', '/', $this->getTarget());
        return Url::fromRoute('system.private_file_download', [
            'filepath' => $path,
        ], [
            'absolute' => TRUE,
            'path_processing' => FALSE,
        ])->toString();
    }
    
    /**
     * Returns the base path for private://.
     *
     * Note that this static method is used by \Drupal\system\Form\FileSystemForm
     * so you should alter that form or substitute a different form if you change
     * the class providing the stream_wrapper.private service.
     *
     * @return string|null
     *   The base path for private://. NULL means the private directory is not
     *   set.
     */
    public static function basePath() {
        return Settings::get('file_private_path');
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
LocalStream::$context public property Stream context resource.
LocalStream::$handle public property A generic resource handle.
LocalStream::$uri protected property Instance URI (stream).
LocalStream::dirname public function Overrides StreamWrapperInterface::dirname
LocalStream::dir_closedir public function Overrides PhpStreamWrapperInterface::dir_closedir
LocalStream::dir_opendir public function Overrides PhpStreamWrapperInterface::dir_opendir
LocalStream::dir_readdir public function Overrides PhpStreamWrapperInterface::dir_readdir
LocalStream::dir_rewinddir public function Overrides PhpStreamWrapperInterface::dir_rewinddir
LocalStream::getFileSystem private function Returns file system service.
LocalStream::getLocalPath protected function Returns the canonical absolute path of the URI, if possible. 1
LocalStream::getTarget protected function Returns the local writable target of the resource within the stream.
LocalStream::getUri public function Overrides StreamWrapperInterface::getUri
LocalStream::mkdir public function Overrides PhpStreamWrapperInterface::mkdir 1
LocalStream::realpath public function Overrides StreamWrapperInterface::realpath 1
LocalStream::rename public function Overrides PhpStreamWrapperInterface::rename 1
LocalStream::rmdir public function Overrides PhpStreamWrapperInterface::rmdir 1
LocalStream::setUri public function Overrides StreamWrapperInterface::setUri
LocalStream::stream_cast public function Overrides PhpStreamWrapperInterface::stream_cast
LocalStream::stream_close public function Overrides PhpStreamWrapperInterface::stream_close
LocalStream::stream_eof public function Overrides PhpStreamWrapperInterface::stream_eof
LocalStream::stream_flush public function Overrides PhpStreamWrapperInterface::stream_flush 1
LocalStream::stream_lock public function Overrides PhpStreamWrapperInterface::stream_lock 1
LocalStream::stream_metadata public function Overrides PhpStreamWrapperInterface::stream_metadata 1
LocalStream::stream_open public function Overrides PhpStreamWrapperInterface::stream_open 1
LocalStream::stream_read public function Overrides PhpStreamWrapperInterface::stream_read
LocalStream::stream_seek public function Overrides PhpStreamWrapperInterface::stream_seek
LocalStream::stream_set_option public function Since Windows systems do not allow it and it is not needed for most use
cases anyway, this method is not supported on local files and will trigger
an error and return false. If needed, custom subclasses can provide
OS-specific implementations for…
Overrides PhpStreamWrapperInterface::stream_set_option
LocalStream::stream_stat public function Overrides PhpStreamWrapperInterface::stream_stat
LocalStream::stream_tell public function Overrides PhpStreamWrapperInterface::stream_tell
LocalStream::stream_truncate public function Overrides PhpStreamWrapperInterface::stream_truncate 1
LocalStream::stream_write public function Overrides PhpStreamWrapperInterface::stream_write 1
LocalStream::unlink public function Overrides PhpStreamWrapperInterface::unlink 1
LocalStream::url_stat public function Overrides PhpStreamWrapperInterface::url_stat
PrivateStream::basePath public static function Returns the base path for private://.
PrivateStream::getDescription public function Overrides StreamWrapperInterface::getDescription
PrivateStream::getDirectoryPath public function Overrides LocalStream::getDirectoryPath
PrivateStream::getExternalUrl public function Overrides StreamWrapperInterface::getExternalUrl
PrivateStream::getName public function Overrides StreamWrapperInterface::getName
PrivateStream::getType public static function Overrides LocalStream::getType
StreamWrapperInterface::ALL constant A filter that matches all wrappers.
StreamWrapperInterface::HIDDEN constant Defines the stream wrapper bit flag for a hidden file.
StreamWrapperInterface::LOCAL constant Refers to a local file system location.
StreamWrapperInterface::LOCAL_HIDDEN constant Hidden, readable and writable using local files.
StreamWrapperInterface::LOCAL_NORMAL constant Visible, readable and writable using local files.
StreamWrapperInterface::NORMAL constant The default 'type' flag.
StreamWrapperInterface::READ constant Wrapper is readable (almost always true).
StreamWrapperInterface::READ_VISIBLE constant Visible and read-only.
StreamWrapperInterface::VISIBLE constant Exposed in the UI and potentially web accessible.
StreamWrapperInterface::WRITE constant Wrapper is writable.
StreamWrapperInterface::WRITE_VISIBLE constant Visible, readable and writable.

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