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