Skip to content
Snippets Groups Projects

Issue #3434168: Drupal 11 compatibility fixes for remote_stream_wrapper...

Files
12
@@ -2,8 +2,11 @@
@@ -2,8 +2,11 @@
namespace Drupal\remote_stream_wrapper\File\MimeType;
namespace Drupal\remote_stream_wrapper\File\MimeType;
 
use Drupal\Core\Utility\Error;
use Drupal\Component\Utility\UrlHelper;
use Drupal\Component\Utility\UrlHelper;
use Drupal\Core\File\FileSystemInterface;
use Drupal\Core\File\FileSystemInterface;
 
use Drupal\Core\Logger\LoggerChannelFactoryInterface;
 
use Drupal\Core\Logger\LoggerChannelInterface;
use Drupal\remote_stream_wrapper\HttpClientTrait;
use Drupal\remote_stream_wrapper\HttpClientTrait;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ResponseInterface;
use Symfony\Component\Mime\MimeTypeGuesserInterface;
use Symfony\Component\Mime\MimeTypeGuesserInterface;
@@ -29,6 +32,13 @@ class HttpMimeTypeGuesser implements MimeTypeGuesserInterface {
@@ -29,6 +32,13 @@ class HttpMimeTypeGuesser implements MimeTypeGuesserInterface {
*/
*/
protected $extensionGuesser;
protected $extensionGuesser;
 
/**
 
* The logger.
 
*
 
* @var \Drupal\Core\Logger\LoggerChannelInterface
 
*/
 
protected LoggerChannelInterface $logger;
 
/**
/**
* Constructs a new HttpMimeTypeGuesser.
* Constructs a new HttpMimeTypeGuesser.
*
*
@@ -36,10 +46,13 @@ class HttpMimeTypeGuesser implements MimeTypeGuesserInterface {
@@ -36,10 +46,13 @@ class HttpMimeTypeGuesser implements MimeTypeGuesserInterface {
* The file system.
* The file system.
* @param \Symfony\Component\Mime\MimeTypeGuesserInterface $extension_guesser
* @param \Symfony\Component\Mime\MimeTypeGuesserInterface $extension_guesser
* The extension guesser.
* The extension guesser.
 
* @param \Drupal\Core\Logger\LoggerChannelFactoryInterface $loggerFactory
 
* The logger factory.
*/
*/
public function __construct(FileSystemInterface $file_system, MimeTypeGuesserInterface $extension_guesser) {
public function __construct(FileSystemInterface $file_system, MimeTypeGuesserInterface $extension_guesser, LoggerChannelFactoryInterface $loggerFactory) {
$this->fileSystem = $file_system;
$this->fileSystem = $file_system;
$this->extensionGuesser = $extension_guesser;
$this->extensionGuesser = $extension_guesser;
 
$this->logger = $loggerFactory->get('remote_stream_wrapper');
}
}
/**
/**
@@ -55,9 +68,8 @@ class HttpMimeTypeGuesser implements MimeTypeGuesserInterface {
@@ -55,9 +68,8 @@ class HttpMimeTypeGuesser implements MimeTypeGuesserInterface {
if ($filename = $this->parseFileNameFromUrl($path)) {
if ($filename = $this->parseFileNameFromUrl($path)) {
$mimetype = $this->extensionGuesser->guessMimeType($filename);
$mimetype = $this->extensionGuesser->guessMimeType($filename);
if ($mimetype !== 'application/octet-stream') {
if ($mimetype !== NULL) {
// Only return the guessed mime type if it found a valid match
// Only return the guessed mime type if it found a valid match.
// instead of returning the default mime type.
return $mimetype;
return $mimetype;
}
}
}
}
@@ -69,7 +81,7 @@ class HttpMimeTypeGuesser implements MimeTypeGuesserInterface {
@@ -69,7 +81,7 @@ class HttpMimeTypeGuesser implements MimeTypeGuesserInterface {
}
}
}
}
catch (\Exception $exception) {
catch (\Exception $exception) {
watchdog_exception('remote_stream_wrapper', $exception);
Error::logException($this->logger, $exception);
}
}
return NULL;
return NULL;
Loading