Skip to content

Commit ab32125

Browse files
committed
bug #27359 [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization (nicolas-grekas)
This PR was merged into the 2.7 branch. Discussion ---------- [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization | Q | A | ------------- | --- | Branch? | 2.7 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #27307 | License | MIT | Doc PR | - introduced in #26886 ![image](https://user-images.githubusercontent.com/243674/40451947-918f5358-5ee0-11e8-9f1a-cf707bf3cefa.png) Commits ------- f8e7a18 [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization
2 parents 2f34263 + f8e7a18 commit ab32125

File tree

1 file changed

+6
-15
lines changed

1 file changed

+6
-15
lines changed

src/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php

+6-15
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,8 @@ public static function reset()
8080
*/
8181
private function __construct()
8282
{
83-
if (FileBinaryMimeTypeGuesser::isSupported()) {
84-
$this->register(new FileBinaryMimeTypeGuesser());
85-
}
86-
87-
if (FileinfoMimeTypeGuesser::isSupported()) {
88-
$this->register(new FileinfoMimeTypeGuesser());
89-
}
83+
$this->register(new FileBinaryMimeTypeGuesser());
84+
$this->register(new FileinfoMimeTypeGuesser());
9085
}
9186

9287
/**
@@ -125,18 +120,14 @@ public function guess($path)
125120
throw new AccessDeniedException($path);
126121
}
127122

128-
if (!$this->guessers) {
129-
$msg = 'Unable to guess the mime type as no guessers are available';
130-
if (!FileinfoMimeTypeGuesser::isSupported()) {
131-
$msg .= ' (Did you enable the php_fileinfo extension?)';
132-
}
133-
throw new \LogicException($msg);
134-
}
135-
136123
foreach ($this->guessers as $guesser) {
137124
if (null !== $mimeType = $guesser->guess($path)) {
138125
return $mimeType;
139126
}
140127
}
128+
129+
if (2 === \count($this->guessers) && !FileBinaryMimeTypeGuesser::isSupported() && !FileinfoMimeTypeGuesser::isSupported()) {
130+
throw new \LogicException('Unable to guess the mime type as no guessers are available (Did you enable the php_fileinfo extension?)');
131+
}
141132
}
142133
}

0 commit comments

Comments
 (0)