realpath(); } if ($this->sortedGuessers === NULL) { // Sort is not triggered yet. $this->sortedGuessers = $this->sortGuessers(); } foreach ($this->sortedGuessers as $guesser) { $mime_type = $guesser->guess($path); if ($mime_type !== NULL) { return $mime_type; } } } /** * Appends a MIME type guesser to the guessers chain. * * @param \Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface $guesser * The guesser to be appended. * @param int $priority * The priority of the guesser being added. * * @return $this */ public function addGuesser(MimeTypeGuesserInterface $guesser, $priority = 0) { $this->guessers[$priority][] = $guesser; // Mark sorted guessers for rebuild. $this->sortedGuessers = NULL; return $this; } /** * Sorts guessers according to priority. * * @return \Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface[] * A sorted array of MIME type guesser objects. */ protected function sortGuessers() { $sorted = array(); krsort($this->guessers); foreach ($this->guessers as $guesser) { $sorted = array_merge($sorted, $guesser); } return $sorted; } }