[CLEANUP] Remove usage of self::class
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Classes / Type / File / FileInfo.php
1 <?php
2 namespace TYPO3\CMS\Core\Type\File;
3
4 /**
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 use TYPO3\CMS\Core\Type\TypeInterface;
18
19 /**
20 * A SPL FileInfo class providing general information related to a file.
21 */
22 class FileInfo extends \SplFileInfo implements TypeInterface {
23
24 /**
25 * Return the mime type of a file.
26 *
27 * @return string|bool Returns the mime type or FALSE if the mime type could not be discovered
28 */
29 public function getMimeType() {
30 $mimeType = FALSE;
31 if ($this->isFile()) {
32 $fileExtensionToMimeTypeMapping = $GLOBALS['TYPO3_CONF_VARS']['SYS']['FileInfo']['fileExtensionToMimeType'];
33 $lowercaseFileExtension = strtolower($this->getExtension());
34 if (!empty($fileExtensionToMimeTypeMapping[$lowercaseFileExtension])) {
35 $mimeType = $fileExtensionToMimeTypeMapping[$lowercaseFileExtension];
36 } else {
37 if (function_exists('finfo_file')) {
38 $fileInfo = new \finfo();
39 $mimeType = $fileInfo->file($this->getPathname(), FILEINFO_MIME_TYPE);
40 } elseif (function_exists('mime_content_type')) {
41 $mimeType = mime_content_type($this->getPathname());
42 }
43 }
44 }
45
46 if (isset($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Core\Type\File\FileInfo::class]['mimeTypeGuessers'])
47 && is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Core\Type\File\FileInfo::class]['mimeTypeGuesser'])
48 ) {
49 foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Core\Type\File\FileInfo::class]['mimeTypeGuesser'] as $mimeTypeGuesser) {
50 $hookParameters = array(
51 'mimeType' => &$mimeType
52 );
53
54 \TYPO3\CMS\Core\Utility\GeneralUtility::callUserFunction(
55 $mimeTypeGuesser,
56 $hookParameters,
57 $this
58 );
59 }
60 }
61
62 return $mimeType;
63 }
64 }