Verzeichnisstruktur phpBB-3.2.0
- Veröffentlicht
- 06.01.2017
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
ExtensionGuesser.php
01 <?php
02
03 /*
04 * This file is part of the Symfony package.
05 *
06 * (c) Fabien Potencier <fabien@symfony.com>
07 *
08 * For the full copyright and license information, please view the LICENSE
09 * 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