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.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

ExtensionGuesser.php

Zuletzt modifiziert: 09.10.2024, 12:57 - Dateigröße: 2.41 KiB


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