class LocalPathProcessor in Flysystem 3.x
Same name and namespace in other branches
- 8 src/PathProcessor/LocalPathProcessor.php \Drupal\flysystem\PathProcessor\LocalPathProcessor
- 2.0.x src/PathProcessor/LocalPathProcessor.php \Drupal\flysystem\PathProcessor\LocalPathProcessor
- 3.0.x src/PathProcessor/LocalPathProcessor.php \Drupal\flysystem\PathProcessor\LocalPathProcessor
Defines a path processor to serve public files directly for the local adapter.
As the route system does not allow arbitrary amount of parameters convert the file path to a query parameter on the request.
Hierarchy
- class \Drupal\flysystem\PathProcessor\LocalPathProcessor implements InboundPathProcessorInterface
Expanded class hierarchy of LocalPathProcessor
2 files declare their use of LocalPathProcessor
- FlysystemServiceProviderTest.php in tests/
src/ Unit/ FlysystemServiceProviderTest.php - LocalPathProcessorTest.php in tests/
src/ Unit/ PathProcessor/ LocalPathProcessorTest.php
File
- src/
PathProcessor/ LocalPathProcessor.php, line 16
Namespace
Drupal\flysystem\PathProcessorView source
class LocalPathProcessor implements InboundPathProcessorInterface {
/**
* The root of the local filesystem.
*
* @var string
*/
protected $root;
/**
* The scheme.
*
* @var string
*/
protected $scheme;
/**
* Constructs a LocalPathProcessor.
*
* @param string $scheme
* The public scheme.
*/
public function __construct($scheme) {
$this->scheme = $scheme;
$settings = Settings::get('flysystem', []);
$this->root = $settings[$scheme]['config']['root'];
}
/**
* {@inheritdoc}
*/
public function processInbound($path, Request $request) {
if (strpos($path, '/' . $this->root . '/') !== 0) {
return $path;
}
$rest = substr($path, strlen($this->root) + 2);
if (strpos($rest, 'styles/') === 0 && substr_count($rest, '/') >= 3) {
list(, $image_style, $scheme, $file) = explode('/', $rest, 4);
// Set the file as query parameter.
$request->query
->set('file', $file);
return '/' . $this->root . '/styles/' . $image_style . '/' . $scheme;
}
$request->query
->set('file', $rest);
return '/' . $this->root;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
LocalPathProcessor:: |
protected | property | The root of the local filesystem. | |
LocalPathProcessor:: |
protected | property | The scheme. | |
LocalPathProcessor:: |
public | function |
Processes the inbound path. Overrides InboundPathProcessorInterface:: |
|
LocalPathProcessor:: |
public | function | Constructs a LocalPathProcessor. |