Overview

Namespaces

  • Composer
    • Autoload
  • Guzzle
    • Common
      • Exception
    • Http
      • Curl
      • Exception
      • Message
        • Header
      • QueryAggregator
    • Parser
      • Cookie
      • Message
      • UriTemplate
      • Url
    • Plugin
      • Mock
    • Stream
  • Mockery
    • Adapter
      • Phpunit
    • CountValidator
    • Exception
    • Generator
      • StringManipulation
        • Pass
    • Loader
    • Matcher
  • None
  • Omnipay
    • Common
      • Exception
      • Message
    • Dummy
      • Message
    • Fatzebra
      • Message
  • PHP
  • Symfony
    • Component
      • EventDispatcher
        • Debug
        • DependencyInjection
        • Tests
          • Debug
          • DependencyInjection
      • HttpFoundation
        • File
          • Exception
          • MimeType
        • Session
          • Attribute
          • Flash
          • Storage
            • Handler
            • Proxy
        • Tests
          • File
            • MimeType
          • Session
            • Attribute
            • Flash
            • Storage
              • Handler
              • Proxy
      • Yaml
        • Exception
        • Tests

Classes

  • Symfony\Component\Yaml\Tests\A
  • Symfony\Component\Yaml\Tests\B
  • Symfony\Component\Yaml\Tests\DumperTest
  • Symfony\Component\Yaml\Tests\InlineTest
  • Symfony\Component\Yaml\Tests\ParseExceptionTest
  • Symfony\Component\Yaml\Tests\ParserTest
  • Symfony\Component\Yaml\Tests\YamlTest
  • Overview
  • Namespace
  • Function
  • Tree
 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: /**
15:  * A singleton mime type to file extension guesser.
16:  *
17:  * A default guesser is provided.
18:  * You can register custom guessers by calling the register()
19:  * method on the singleton instance:
20:  *
21:  *     $guesser = ExtensionGuesser::getInstance();
22:  *     $guesser->register(new MyCustomExtensionGuesser());
23:  *
24:  * The last registered guesser is preferred over previously registered ones.
25:  */
26: class ExtensionGuesser implements ExtensionGuesserInterface
27: {
28:     /**
29:      * The singleton instance.
30:      *
31:      * @var ExtensionGuesser
32:      */
33:     private static $instance = null;
34: 
35:     /**
36:      * All registered ExtensionGuesserInterface instances.
37:      *
38:      * @var array
39:      */
40:     protected $guessers = array();
41: 
42:     /**
43:      * Returns the singleton instance.
44:      *
45:      * @return ExtensionGuesser
46:      */
47:     public static function getInstance()
48:     {
49:         if (null === self::$instance) {
50:             self::$instance = new self();
51:         }
52: 
53:         return self::$instance;
54:     }
55: 
56:     /**
57:      * Registers all natively provided extension guessers.
58:      */
59:     private function __construct()
60:     {
61:         $this->register(new MimeTypeExtensionGuesser());
62:     }
63: 
64:     /**
65:      * Registers a new extension guesser.
66:      *
67:      * When guessing, this guesser is preferred over previously registered ones.
68:      *
69:      * @param ExtensionGuesserInterface $guesser
70:      */
71:     public function register(ExtensionGuesserInterface $guesser)
72:     {
73:         array_unshift($this->guessers, $guesser);
74:     }
75: 
76:     /**
77:      * Tries to guess the extension.
78:      *
79:      * The mime type is passed to each registered mime type guesser in reverse order
80:      * of their registration (last registered is queried first). Once a guesser
81:      * returns a value that is not NULL, this method terminates and returns the
82:      * value.
83:      *
84:      * @param string $mimeType The mime type
85:      *
86:      * @return string The guessed extension or NULL, if none could be guessed
87:      */
88:     public function guess($mimeType)
89:     {
90:         foreach ($this->guessers as $guesser) {
91:             if (null !== $extension = $guesser->guess($mimeType)) {
92:                 return $extension;
93:             }
94:         }
95:     }
96: }
97: 
Omnipay Fat Zebra / Paystream Gateway Module API Documentation API documentation generated by ApiGen