Verzeichnisstruktur phpBB-3.3.15


Veröffentlicht
28.08.2024

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

AggregateDirectoryScanner.php

Zuletzt modifiziert: 02.04.2025, 15:03 - Dateigröße: 2.80 KiB


001  <?php
002  /**
003   * Zend Framework (http://framework.zend.com/)
004   *
005   * @link      http://github.com/zendframework/zf2 for the canonical source repository
006   * @copyright Copyright (c) 2005-2016 Zend Technologies USA Inc. (http://www.zend.com)
007   * @license   http://framework.zend.com/license/new-bsd New BSD License
008   */
009   
010  namespace Zend\Code\Scanner;
011   
012  use Zend\Code\Exception;
013   
014  class AggregateDirectoryScanner extends DirectoryScanner
015  {
016      /**
017       * @var bool
018       */
019      protected $isScanned = false;
020   
021      /**
022       * @param  bool $returnScannerClass
023       * @todo not implemented
024       */
025      public function getNamespaces($returnScannerClass = false)
026      {
027          // @todo
028      }
029   
030      public function getIncludes($returnScannerClass = false)
031      {
032      }
033   
034      public function getClasses($returnScannerClass = false, $returnDerivedScannerClass = false)
035      {
036          $classes = [];
037          foreach ($this->directories as $scanner) {
038              $classes += $scanner->getClasses();
039          }
040          if ($returnScannerClass) {
041              foreach ($classes as $index => $class) {
042                  $classes[$index] = $this->getClass($class, $returnScannerClass, $returnDerivedScannerClass);
043              }
044          }
045   
046          return $classes;
047      }
048   
049      /**
050       * @param  string $class
051       * @return bool
052       */
053      public function hasClass($class)
054      {
055          foreach ($this->directories as $scanner) {
056              if ($scanner->hasClass($class)) {
057                  break;
058              } else {
059                  unset($scanner);
060              }
061          }
062   
063          return isset($scanner);
064      }
065   
066      /**
067       * @param  string $class
068       * @param  bool $returnScannerClass
069       * @param  bool $returnDerivedScannerClass
070       * @return ClassScanner|DerivedClassScanner
071       * @throws Exception\RuntimeException
072       */
073      public function getClass($class, $returnScannerClass = true, $returnDerivedScannerClass = false)
074      {
075          foreach ($this->directories as $scanner) {
076              if ($scanner->hasClass($class)) {
077                  break;
078              } else {
079                  unset($scanner);
080              }
081          }
082   
083          if (! isset($scanner)) {
084              throw new Exception\RuntimeException('Class by that name was not found.');
085          }
086   
087          $classScanner = $scanner->getClass($class);
088   
089          return new DerivedClassScanner($classScanner, $this);
090      }
091   
092      /**
093       * @param bool $returnScannerClass
094       */
095      public function getFunctions($returnScannerClass = false)
096      {
097          $this->scan();
098   
099          if (! $returnScannerClass) {
100              $functions = [];
101              foreach ($this->infos as $info) {
102                  if ($info['type'] == 'function') {
103                      $functions[] = $info['name'];
104                  }
105              }
106   
107              return $functions;
108          }
109          $scannerClass = new FunctionScanner();
110          // @todo
111      }
112  }
113