[ Index ]

PHP Cross Reference of phpBB-3.2.11-deutsch

title

Body

[close]

/vendor/symfony/http-foundation/File/MimeType/ -> FileinfoMimeTypeGuesser.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Symfony\Component\HttpFoundation\File\MimeType;
  13  
  14  use Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException;
  15  use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
  16  
  17  /**
  18   * Guesses the mime type using the PECL extension FileInfo.
  19   *
  20   * @author Bernhard Schussek <bschussek@gmail.com>
  21   */
  22  class FileinfoMimeTypeGuesser implements MimeTypeGuesserInterface
  23  {
  24      private $magicFile;
  25  
  26      /**
  27       * @param string $magicFile A magic file to use with the finfo instance
  28       *
  29       * @see http://www.php.net/manual/en/function.finfo-open.php
  30       */
  31      public function __construct($magicFile = null)
  32      {
  33          $this->magicFile = $magicFile;
  34      }
  35  
  36      /**
  37       * Returns whether this guesser is supported on the current OS/PHP setup.
  38       *
  39       * @return bool
  40       */
  41      public static function isSupported()
  42      {
  43          return \function_exists('finfo_open');
  44      }
  45  
  46      /**
  47       * {@inheritdoc}
  48       */
  49      public function guess($path)
  50      {
  51          if (!is_file($path)) {
  52              throw new FileNotFoundException($path);
  53          }
  54  
  55          if (!is_readable($path)) {
  56              throw new AccessDeniedException($path);
  57          }
  58  
  59          if (!self::isSupported()) {
  60              return;
  61          }
  62  
  63          if (!$finfo = new \finfo(FILEINFO_MIME_TYPE, $this->magicFile)) {
  64              return;
  65          }
  66  
  67          return $finfo->file($path);
  68      }
  69  }


Generated: Wed Nov 11 20:33:01 2020 Cross-referenced by PHPXref 0.7.1