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

AggregateDirectoryScanner.php

Zuletzt modifiziert: 09.10.2024, 12:57 - Dateigröße: 2.89 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-2015 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      /*
031      public function getUses($returnScannerClass = false)
032      {}
033      */
034   
035      public function getIncludes($returnScannerClass = false)
036      {
037      }
038   
039      public function getClasses($returnScannerClass = false, $returnDerivedScannerClass = false)
040      {
041          $classes = array();
042          foreach ($this->directories as $scanner) {
043              $classes += $scanner->getClasses();
044          }
045          if ($returnScannerClass) {
046              foreach ($classes as $index => $class) {
047                  $classes[$index] = $this->getClass($class, $returnScannerClass, $returnDerivedScannerClass);
048              }
049          }
050   
051          return $classes;
052      }
053   
054      /**
055       * @param  string $class
056       * @return bool
057       */
058      public function hasClass($class)
059      {
060          foreach ($this->directories as $scanner) {
061              if ($scanner->hasClass($class)) {
062                  break;
063              } else {
064                  unset($scanner);
065              }
066          }
067   
068          return (isset($scanner));
069      }
070   
071      /**
072       * @param  string $class
073       * @param  bool $returnScannerClass
074       * @param  bool $returnDerivedScannerClass
075       * @return ClassScanner|DerivedClassScanner
076       * @throws Exception\RuntimeException
077       */
078      public function getClass($class, $returnScannerClass = true, $returnDerivedScannerClass = false)
079      {
080          foreach ($this->directories as $scanner) {
081              if ($scanner->hasClass($class)) {
082                  break;
083              } else {
084                  unset($scanner);
085              }
086          }
087   
088          if (!isset($scanner)) {
089              throw new Exception\RuntimeException('Class by that name was not found.');
090          }
091   
092          $classScanner = $scanner->getClass($class);
093   
094          return new DerivedClassScanner($classScanner, $this);
095      }
096   
097      /**
098       * @param bool $returnScannerClass
099       */
100      public function getFunctions($returnScannerClass = false)
101      {
102          $this->scan();
103   
104          if (!$returnScannerClass) {
105              $functions = array();
106              foreach ($this->infos as $info) {
107                  if ($info['type'] == 'function') {
108                      $functions[] = $info['name'];
109                  }
110              }
111   
112              return $functions;
113          }
114          $scannerClass = new FunctionScanner();
115          // @todo
116      }
117  }
118