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

Configuration.php

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


001  <?php
002   
003  declare(strict_types=1);
004   
005  namespace ProxyManager;
006   
007  use ProxyManager\Autoloader\Autoloader;
008  use ProxyManager\Autoloader\AutoloaderInterface;
009  use ProxyManager\FileLocator\FileLocator;
010  use ProxyManager\GeneratorStrategy\EvaluatingGeneratorStrategy;
011  use ProxyManager\GeneratorStrategy\GeneratorStrategyInterface;
012  use ProxyManager\Inflector\ClassNameInflector;
013  use ProxyManager\Inflector\ClassNameInflectorInterface;
014  use ProxyManager\Signature\ClassSignatureGenerator;
015  use ProxyManager\Signature\ClassSignatureGeneratorInterface;
016  use ProxyManager\Signature\SignatureChecker;
017  use ProxyManager\Signature\SignatureCheckerInterface;
018  use ProxyManager\Signature\SignatureGenerator;
019  use ProxyManager\Signature\SignatureGeneratorInterface;
020   
021  /**
022   * Base configuration class for the proxy manager - serves as micro disposable DIC/facade
023   *
024   * @author Marco Pivetta <ocramius@gmail.com>
025   * @license MIT
026   */
027  class Configuration
028  {
029      const DEFAULT_PROXY_NAMESPACE = 'ProxyManagerGeneratedProxy';
030   
031      /**
032       * @var string|null
033       */
034      protected $proxiesTargetDir;
035   
036      /**
037       * @var string
038       */
039      protected $proxiesNamespace = self::DEFAULT_PROXY_NAMESPACE;
040   
041      /**
042       * @var GeneratorStrategyInterface|null
043       */
044      protected $generatorStrategy;
045   
046      /**
047       * @var AutoloaderInterface|null
048       */
049      protected $proxyAutoloader;
050   
051      /**
052       * @var ClassNameInflectorInterface|null
053       */
054      protected $classNameInflector;
055   
056      /**
057       * @var SignatureGeneratorInterface|null
058       */
059      protected $signatureGenerator;
060   
061      /**
062       * @var SignatureCheckerInterface|null
063       */
064      protected $signatureChecker;
065   
066      /**
067       * @var ClassSignatureGeneratorInterface|null
068       */
069      protected $classSignatureGenerator;
070   
071      public function setProxyAutoloader(AutoloaderInterface $proxyAutoloader) : void
072      {
073          $this->proxyAutoloader = $proxyAutoloader;
074      }
075   
076      public function getProxyAutoloader() : AutoloaderInterface
077      {
078          return $this->proxyAutoloader
079              ?: $this->proxyAutoloader = new Autoloader(
080                  new FileLocator($this->getProxiesTargetDir()),
081                  $this->getClassNameInflector()
082              );
083      }
084   
085      public function setProxiesNamespace(string $proxiesNamespace) : void
086      {
087          $this->proxiesNamespace = $proxiesNamespace;
088      }
089   
090      public function getProxiesNamespace() : string
091      {
092          return $this->proxiesNamespace;
093      }
094   
095      public function setProxiesTargetDir(string $proxiesTargetDir) : void
096      {
097          $this->proxiesTargetDir = $proxiesTargetDir;
098      }
099   
100      public function getProxiesTargetDir() : string
101      {
102          return $this->proxiesTargetDir ?: $this->proxiesTargetDir = sys_get_temp_dir();
103      }
104   
105      public function setGeneratorStrategy(GeneratorStrategyInterface $generatorStrategy) : void
106      {
107          $this->generatorStrategy = $generatorStrategy;
108      }
109   
110      public function getGeneratorStrategy() : GeneratorStrategyInterface
111      {
112          return $this->generatorStrategy
113              ?: $this->generatorStrategy = new EvaluatingGeneratorStrategy();
114      }
115   
116      public function setClassNameInflector(ClassNameInflectorInterface $classNameInflector) : void
117      {
118          $this->classNameInflector = $classNameInflector;
119      }
120   
121      public function getClassNameInflector() : ClassNameInflectorInterface
122      {
123          return $this->classNameInflector
124              ?: $this->classNameInflector = new ClassNameInflector($this->getProxiesNamespace());
125      }
126   
127      public function setSignatureGenerator(SignatureGeneratorInterface $signatureGenerator) : void
128      {
129          $this->signatureGenerator = $signatureGenerator;
130      }
131   
132      public function getSignatureGenerator() : SignatureGeneratorInterface
133      {
134          return $this->signatureGenerator ?: $this->signatureGenerator = new SignatureGenerator();
135      }
136   
137      public function setSignatureChecker(SignatureCheckerInterface $signatureChecker) : void
138      {
139          $this->signatureChecker = $signatureChecker;
140      }
141   
142      public function getSignatureChecker() : SignatureCheckerInterface
143      {
144          return $this->signatureChecker
145              ?: $this->signatureChecker = new SignatureChecker($this->getSignatureGenerator());
146      }
147   
148      public function setClassSignatureGenerator(ClassSignatureGeneratorInterface $classSignatureGenerator) : void
149      {
150          $this->classSignatureGenerator = $classSignatureGenerator;
151      }
152   
153      public function getClassSignatureGenerator() : ClassSignatureGeneratorInterface
154      {
155          return $this->classSignatureGenerator
156              ?: new ClassSignatureGenerator($this->getSignatureGenerator());
157      }
158  }
159