class PublicStream
Same name in other branches
- 9 core/lib/Drupal/Core/StreamWrapper/PublicStream.php \Drupal\Core\StreamWrapper\PublicStream
- 10 core/lib/Drupal/Core/StreamWrapper/PublicStream.php \Drupal\Core\StreamWrapper\PublicStream
- 11.x core/lib/Drupal/Core/StreamWrapper/PublicStream.php \Drupal\Core\StreamWrapper\PublicStream
Defines a Drupal public (public://) stream wrapper class.
Provides support for storing publicly accessible files with the Drupal file interface.
Hierarchy
- class \Drupal\Core\StreamWrapper\LocalStream implements \Drupal\Core\StreamWrapper\StreamWrapperInterface
- class \Drupal\Core\StreamWrapper\PublicStream extends \Drupal\Core\StreamWrapper\LocalStream
Expanded class hierarchy of PublicStream
21 files declare their use of PublicStream
- CachedStorageTest.php in core/
tests/ Drupal/ KernelTests/ Core/ Config/ Storage/ CachedStorageTest.php - DummyRemoteStreamWrapper.php in core/
modules/ file/ tests/ file_test/ src/ StreamWrapper/ DummyRemoteStreamWrapper.php - FileStorageTest.php in core/
tests/ Drupal/ KernelTests/ Core/ Config/ Storage/ FileStorageTest.php - FileSystem.php in core/
lib/ Drupal/ Core/ File/ FileSystem.php - FileSystemForm.php in core/
modules/ system/ src/ Form/ FileSystemForm.php
1 string reference to 'PublicStream'
- core.services.yml in core/
core.services.yml - core/core.services.yml
1 service uses PublicStream
File
-
core/
lib/ Drupal/ Core/ StreamWrapper/ PublicStream.php, line 16
Namespace
Drupal\Core\StreamWrapperView source
class PublicStream extends LocalStream {
/**
* {@inheritdoc}
*/
public static function getType() {
return StreamWrapperInterface::LOCAL_NORMAL;
}
/**
* {@inheritdoc}
*/
public function getName() {
return t('Public files');
}
/**
* {@inheritdoc}
*/
public function getDescription() {
return t('Public local files served by the webserver.');
}
/**
* {@inheritdoc}
*/
public function getDirectoryPath() {
return static::basePath();
}
/**
* {@inheritdoc}
*/
public function getExternalUrl() {
$path = str_replace('\\', '/', $this->getTarget());
return static::baseUrl() . '/' . UrlHelper::encodePath($path);
}
/**
* Finds and returns the base URL for public://.
*
* Defaults to the current site's base URL plus directory path.
*
* 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.public service.
*
* @return string
* The external base URL for public://
*/
public static function baseUrl() {
$settings_base_url = Settings::get('file_public_base_url', '');
if ($settings_base_url) {
return (string) $settings_base_url;
}
else {
return $GLOBALS['base_url'] . '/' . static::basePath();
}
}
/**
* Returns the base path for public://.
*
* If we have a setting for the public:// scheme's path, we use that.
* Otherwise we build a reasonable default based on the site.path service if
* it's available, or a default behavior based on the request.
*
* 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.public service.
*
* The site path is injectable from the site.path service:
* @code
* $base_path = PublicStream::basePath(\Drupal::service('site.path'));
* @endcode
*
* @param string $site_path
* (optional) The site.path service parameter, which is typically the path
* to sites/ in a Drupal installation. This allows you to inject the site
* path using services from the caller. If omitted, this method will use the
* global service container or the kernel's default behavior to determine
* the site path.
*
* @return string
* The base path for public:// typically sites/default/files.
*/
public static function basePath($site_path = NULL) {
if ($site_path === NULL) {
// Find the site path. Kernel service is not always available at this
// point, but is preferred, when available.
if (\Drupal::hasService('kernel')) {
$site_path = \Drupal::service('site.path');
}
else {
// If there is no kernel available yet, we call the static
// findSitePath().
$site_path = DrupalKernel::findSitePath(Request::createFromGlobals());
}
}
return Settings::get('file_public_path', $site_path . '/files');
}
}
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 | Gets the name of the directory from a given path. | Overrides StreamWrapperInterface::dirname | |
LocalStream::dir_closedir | public | function | Support for closedir(). | Overrides PhpStreamWrapperInterface::dir_closedir | |
LocalStream::dir_opendir | public | function | Support for opendir(). | Overrides PhpStreamWrapperInterface::dir_opendir | |
LocalStream::dir_readdir | public | function | Support for readdir(). | Overrides PhpStreamWrapperInterface::dir_readdir | |
LocalStream::dir_rewinddir | public | function | Support for rewinddir(). | 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. | ||
LocalStream::getTarget | protected | function | Returns the local writable target of the resource within the stream. | ||
LocalStream::getUri | public | function | Returns the stream resource URI. | Overrides StreamWrapperInterface::getUri | |
LocalStream::mkdir | public | function | Support for mkdir(). | Overrides PhpStreamWrapperInterface::mkdir | 1 |
LocalStream::realpath | public | function | Returns canonical, absolute path of the resource. | Overrides StreamWrapperInterface::realpath | 1 |
LocalStream::rename | public | function | Support for rename(). | Overrides PhpStreamWrapperInterface::rename | 1 |
LocalStream::rmdir | public | function | Support for rmdir(). | Overrides PhpStreamWrapperInterface::rmdir | 1 |
LocalStream::setUri | public | function | Sets the absolute stream resource URI. | Overrides StreamWrapperInterface::setUri | |
LocalStream::stream_cast | public | function | Retrieve the underlying stream resource. | Overrides PhpStreamWrapperInterface::stream_cast | |
LocalStream::stream_close | public | function | Support for fclose(). | Overrides PhpStreamWrapperInterface::stream_close | |
LocalStream::stream_eof | public | function | Support for feof(). | Overrides PhpStreamWrapperInterface::stream_eof | |
LocalStream::stream_flush | public | function | Support for fflush(). | Overrides PhpStreamWrapperInterface::stream_flush | 1 |
LocalStream::stream_lock | public | function | Support for flock(). | Overrides PhpStreamWrapperInterface::stream_lock | 1 |
LocalStream::stream_metadata | public | function | Sets metadata on the stream. | Overrides PhpStreamWrapperInterface::stream_metadata | 1 |
LocalStream::stream_open | public | function | Support for fopen(), file_get_contents(), file_put_contents() etc. | Overrides PhpStreamWrapperInterface::stream_open | 1 |
LocalStream::stream_read | public | function | Support for fread(), file_get_contents() etc. | Overrides PhpStreamWrapperInterface::stream_read | |
LocalStream::stream_seek | public | function | Seeks to specific location in a stream. | 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 | Support for fstat(). | Overrides PhpStreamWrapperInterface::stream_stat | |
LocalStream::stream_tell | public | function | Support for ftell(). | Overrides PhpStreamWrapperInterface::stream_tell | |
LocalStream::stream_truncate | public | function | Truncate stream. | Overrides PhpStreamWrapperInterface::stream_truncate | 1 |
LocalStream::stream_write | public | function | Support for fwrite(), file_put_contents() etc. | Overrides PhpStreamWrapperInterface::stream_write | 1 |
LocalStream::unlink | public | function | Support for unlink(). | Overrides PhpStreamWrapperInterface::unlink | 1 |
LocalStream::url_stat | public | function | Support for stat(). | Overrides PhpStreamWrapperInterface::url_stat | |
PublicStream::basePath | public static | function | Returns the base path for public://. | ||
PublicStream::baseUrl | public static | function | Finds and returns the base URL for public://. | ||
PublicStream::getDescription | public | function | Returns the description of the stream wrapper for use in the UI. | Overrides StreamWrapperInterface::getDescription | 1 |
PublicStream::getDirectoryPath | public | function | Gets the path that the wrapper is responsible for. | Overrides LocalStream::getDirectoryPath | |
PublicStream::getExternalUrl | public | function | Returns a web accessible URL for the resource. | Overrides StreamWrapperInterface::getExternalUrl | |
PublicStream::getName | public | function | Returns the name of the stream wrapper for use in the UI. | Overrides StreamWrapperInterface::getName | 1 |
PublicStream::getType | public static | function | Returns the type of stream wrapper. | Overrides LocalStream::getType | 1 |
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 | This is the default 'type' flag. This does not include StreamWrapperInterface::LOCAL, because PHP grants a greater trust level to local files (for example, they can be used in an "include" statement, regardless of the… |
|||
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.