Question : drupal 9 custom local stream wrapper
Answered by : dave-oukrqevg8554
This is a modified snippet from a live real estate project to define a custom stream wrapper.
Add the stream wrapper as a service in your services YML file: stream_wrapper.pics: class: Drupal\mymod\PicsStreamWrapper tags: - { name: stream, scheme: pics }
Create the stream wrapper class extending LocalStream: <?php namespace Drupal\mymod; use Drupal\Core\StreamWrapper\LocalStream; class PicsStreamWrapper extends LocalStream { public function getDirectoryPath() { return 'sites/default/files/pics'; } public function getExternalUrl() { global $base_url; $path = str_replace('\\', '/', $this->getTarget()); return $base_url . '/' . self::getDirectoryPath() . '/' . $path; } public function getName() { return 'Pics Stream'; } public function getDescription() { return 'Pics stream for listing property pics.'; } }
Source : https://gitlab.com/-/snippets/2133034/raw/main/drupal9_custom_stream_wrapper_example.md | Last Update : Wed, 16 Jun 21