class MimeTypeGuesser
Same name in this branch
- main core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php \Drupal\Core\ProxyClass\File\MimeType\MimeTypeGuesser
Same name and namespace in other branches
- 11.x core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php \Drupal\Core\File\MimeType\MimeTypeGuesser
- 11.x core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php \Drupal\Core\ProxyClass\File\MimeType\MimeTypeGuesser
- 10 core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php \Drupal\Core\File\MimeType\MimeTypeGuesser
- 10 core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php \Drupal\Core\ProxyClass\File\MimeType\MimeTypeGuesser
- 9 core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php \Drupal\Core\File\MimeType\MimeTypeGuesser
- 9 core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php \Drupal\Core\ProxyClass\File\MimeType\MimeTypeGuesser
- 8.9.x core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php \Drupal\Core\File\MimeType\MimeTypeGuesser
- 8.9.x core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php \Drupal\Core\ProxyClass\File\MimeType\MimeTypeGuesser
Defines a MIME type guesser that also supports stream wrapper paths.
Hierarchy
- class \Drupal\Core\File\MimeType\MimeTypeGuesser implements \Symfony\Component\Mime\MimeTypeGuesserInterface
Expanded class hierarchy of MimeTypeGuesser
1 file declares its use of MimeTypeGuesser
- DrupalKernel.php in core/
lib/ Drupal/ Core/ DrupalKernel.php
1 string reference to 'MimeTypeGuesser'
- core.services.yml in core/
core.services.yml - core/core.services.yml
1 service uses MimeTypeGuesser
File
-
core/
lib/ Drupal/ Core/ File/ MimeType/ MimeTypeGuesser.php, line 13
Namespace
Drupal\Core\File\MimeTypeView source
class MimeTypeGuesser implements MimeTypeGuesserInterface {
/**
* Constructs a MimeTypeGuesser object.
*
* @param \Drupal\Core\StreamWrapper\StreamWrapperManagerInterface $streamWrapperManager
* The stream wrapper manager.
* @param \Traversable<\Symfony\Component\Mime\MimeTypeGuesserInterface> $guessers
* The MIME type guessers.
*/
public function __construct(protected StreamWrapperManagerInterface $streamWrapperManager, protected \Traversable $guessers) {
}
/**
* {@inheritdoc}
*/
public function guessMimeType(string $path) : ?string {
if ($wrapper = $this->streamWrapperManager
->getViaUri($path)) {
// Get the real path from the stream wrapper, if available. Files stored
// in remote file systems will not have one.
$real_path = $wrapper->realpath();
if ($real_path !== FALSE) {
$path = $real_path;
}
}
foreach ($this->guessers as $guesser) {
if ($guesser->isGuesserSupported()) {
$mime_type = $guesser->guessMimeType($path);
if ($mime_type !== NULL) {
return $mime_type;
}
}
}
return 'application/octet-stream';
}
/**
* {@inheritdoc}
*/
public function isGuesserSupported() : bool {
return TRUE;
}
/**
* A helper function to register with Symfony's singleton MIME type guesser.
*
* Symfony's default mimetype guessers have dependencies on PHP's fileinfo
* extension or being able to run the system command file. Drupal's guesser
* does not have these dependencies.
*
* @see \Symfony\Component\Mime\MimeTypes
*/
public static function registerWithSymfonyGuesser(ContainerInterface $container) : void {
$guesser = new MimeTypes();
$guesser->registerGuesser($container->get('file.mime_type.guesser'));
MimeTypes::setDefault($guesser);
}
}
Members
| Title Sort descending | Modifiers | Object type | Summary |
|---|---|---|---|
| MimeTypeGuesser::guessMimeType | public | function | |
| MimeTypeGuesser::isGuesserSupported | public | function | |
| MimeTypeGuesser::registerWithSymfonyGuesser | public static | function | A helper function to register with Symfony's singleton MIME type guesser. |
| MimeTypeGuesser::__construct | public | function | Constructs a MimeTypeGuesser object. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.