class PublicStream in Zircon Profile 8
Same name and namespace in other branches
- 8.0 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 StreamWrapperInterface
- class \Drupal\Core\StreamWrapper\PublicStream
Expanded class hierarchy of PublicStream
15 files declare their use of PublicStream
- DummyRemoteStreamWrapper.php in core/
modules/ file/ tests/ file_test/ src/ StreamWrapper/ DummyRemoteStreamWrapper.php - Contains \Drupal\file_test\StreamWrapper\DummyRemoteStreamWrapper.
- file.inc in core/
includes/ file.inc - API for handling file uploads and server file management.
- FileSystemForm.php in core/
modules/ system/ src/ Form/ FileSystemForm.php - Contains \Drupal\system\Form\FileSystemForm.
- FileTransferTest.php in core/
modules/ system/ src/ Tests/ FileTransfer/ FileTransferTest.php - Contains \Drupal\system\Tests\FileTransfer\FileTransferTest.
- FilterHtmlImageSecureTest.php in core/
modules/ filter/ src/ Tests/ FilterHtmlImageSecureTest.php - Contains \Drupal\filter\Tests\FilterHtmlImageSecureTest.
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 21 - Contains \Drupal\Core\StreamWrapper\PublicStream.
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 \SplString $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(\SplString $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
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
LocalStream:: |
public | property | Stream context resource. | |
LocalStream:: |
public | property | A generic resource handle. | |
LocalStream:: |
protected | property | Instance URI (stream). | |
LocalStream:: |
public | function |
Gets the name of the directory from a given path. Overrides StreamWrapperInterface:: |
|
LocalStream:: |
public | function |
Support for closedir(). Overrides PhpStreamWrapperInterface:: |
|
LocalStream:: |
public | function |
Support for opendir(). Overrides PhpStreamWrapperInterface:: |
|
LocalStream:: |
public | function |
Support for readdir(). Overrides PhpStreamWrapperInterface:: |
|
LocalStream:: |
public | function |
Support for rewinddir(). Overrides PhpStreamWrapperInterface:: |
|
LocalStream:: |
protected | function | Returns the canonical absolute path of the URI, if possible. | |
LocalStream:: |
protected | function | Returns the local writable target of the resource within the stream. | |
LocalStream:: |
function |
Returns the stream resource URI. Overrides StreamWrapperInterface:: |
||
LocalStream:: |
public | function |
Support for mkdir(). Overrides PhpStreamWrapperInterface:: |
1 |
LocalStream:: |
function |
Returns canonical, absolute path of the resource. Overrides StreamWrapperInterface:: |
1 | |
LocalStream:: |
public | function |
Support for rename(). Overrides PhpStreamWrapperInterface:: |
1 |
LocalStream:: |
public | function |
Support for rmdir(). Overrides PhpStreamWrapperInterface:: |
1 |
LocalStream:: |
function |
Sets the absolute stream resource URI. Overrides StreamWrapperInterface:: |
||
LocalStream:: |
public | function |
Retrieve the underlying stream resource. Overrides PhpStreamWrapperInterface:: |
|
LocalStream:: |
public | function |
Support for fclose(). Overrides PhpStreamWrapperInterface:: |
|
LocalStream:: |
public | function |
Support for feof(). Overrides PhpStreamWrapperInterface:: |
|
LocalStream:: |
public | function |
Support for fflush(). Overrides PhpStreamWrapperInterface:: |
1 |
LocalStream:: |
public | function |
Support for flock(). Overrides PhpStreamWrapperInterface:: |
1 |
LocalStream:: |
public | function |
Sets metadata on the stream. Overrides PhpStreamWrapperInterface:: |
1 |
LocalStream:: |
public | function |
Support for fopen(), file_get_contents(), file_put_contents() etc. Overrides PhpStreamWrapperInterface:: |
1 |
LocalStream:: |
public | function |
Support for fread(), file_get_contents() etc. Overrides PhpStreamWrapperInterface:: |
|
LocalStream:: |
public | function |
Seeks to specific location in a stream. Overrides PhpStreamWrapperInterface:: |
|
LocalStream:: |
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:: |
|
LocalStream:: |
public | function |
Support for fstat(). Overrides PhpStreamWrapperInterface:: |
|
LocalStream:: |
public | function |
Support for ftell(). Overrides PhpStreamWrapperInterface:: |
|
LocalStream:: |
public | function |
Truncate stream. Overrides PhpStreamWrapperInterface:: |
1 |
LocalStream:: |
public | function |
Support for fwrite(), file_put_contents() etc. Overrides PhpStreamWrapperInterface:: |
1 |
LocalStream:: |
public | function |
Support for unlink(). Overrides PhpStreamWrapperInterface:: |
1 |
LocalStream:: |
public | function |
Support for stat(). Overrides PhpStreamWrapperInterface:: |
|
PublicStream:: |
public static | function | Returns the base path for public://. | |
PublicStream:: |
public static | function | Finds and returns the base URL for public://. | |
PublicStream:: |
public | function |
Returns the description of the stream wrapper for use in the UI. Overrides StreamWrapperInterface:: |
1 |
PublicStream:: |
public | function |
Gets the path that the wrapper is responsible for. Overrides LocalStream:: |
|
PublicStream:: |
public | function |
Returns a web accessible URL for the resource. Overrides StreamWrapperInterface:: |
|
PublicStream:: |
public | function |
Returns the name of the stream wrapper for use in the UI. Overrides StreamWrapperInterface:: |
1 |
PublicStream:: |
public static | function |
Returns the type of stream wrapper. Overrides LocalStream:: |
|
StreamWrapperInterface:: |
constant | A filter that matches all wrappers. | ||
StreamWrapperInterface:: |
constant | Not visible in the UI or accessible via web, but readable and writable. E.g. the temporary directory for uploads. | ||
StreamWrapperInterface:: |
constant | Refers to a local file system location. | ||
StreamWrapperInterface:: |
constant | Hidden, readable and writeable using local files. | ||
StreamWrapperInterface:: |
constant | Visible, readable and writeable using local files. | ||
StreamWrapperInterface:: |
constant | This is the default 'type' falg. 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:: |
constant | Wrapper is readable (almost always true). | ||
StreamWrapperInterface:: |
constant | Visible and read-only. | ||
StreamWrapperInterface:: |
constant | Exposed in the UI and potentially web accessible. | ||
StreamWrapperInterface:: |
constant | Wrapper is writeable. | ||
StreamWrapperInterface:: |
constant | Visible, readable and writeable. |