[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/ocramius/proxy-manager/src/ProxyManager/ -> Configuration.php (source)

   1  <?php
   2  
   3  declare(strict_types=1);
   4  
   5  namespace ProxyManager;
   6  
   7  use ProxyManager\Autoloader\Autoloader;
   8  use ProxyManager\Autoloader\AutoloaderInterface;
   9  use ProxyManager\FileLocator\FileLocator;
  10  use ProxyManager\GeneratorStrategy\EvaluatingGeneratorStrategy;
  11  use ProxyManager\GeneratorStrategy\GeneratorStrategyInterface;
  12  use ProxyManager\Inflector\ClassNameInflector;
  13  use ProxyManager\Inflector\ClassNameInflectorInterface;
  14  use ProxyManager\Signature\ClassSignatureGenerator;
  15  use ProxyManager\Signature\ClassSignatureGeneratorInterface;
  16  use ProxyManager\Signature\SignatureChecker;
  17  use ProxyManager\Signature\SignatureCheckerInterface;
  18  use ProxyManager\Signature\SignatureGenerator;
  19  use ProxyManager\Signature\SignatureGeneratorInterface;
  20  
  21  /**
  22   * Base configuration class for the proxy manager - serves as micro disposable DIC/facade
  23   *
  24   * @author Marco Pivetta <ocramius@gmail.com>
  25   * @license MIT
  26   */
  27  class Configuration
  28  {
  29      const DEFAULT_PROXY_NAMESPACE = 'ProxyManagerGeneratedProxy';
  30  
  31      /**
  32       * @var string|null
  33       */
  34      protected $proxiesTargetDir;
  35  
  36      /**
  37       * @var string
  38       */
  39      protected $proxiesNamespace = self::DEFAULT_PROXY_NAMESPACE;
  40  
  41      /**
  42       * @var GeneratorStrategyInterface|null
  43       */
  44      protected $generatorStrategy;
  45  
  46      /**
  47       * @var AutoloaderInterface|null
  48       */
  49      protected $proxyAutoloader;
  50  
  51      /**
  52       * @var ClassNameInflectorInterface|null
  53       */
  54      protected $classNameInflector;
  55  
  56      /**
  57       * @var SignatureGeneratorInterface|null
  58       */
  59      protected $signatureGenerator;
  60  
  61      /**
  62       * @var SignatureCheckerInterface|null
  63       */
  64      protected $signatureChecker;
  65  
  66      /**
  67       * @var ClassSignatureGeneratorInterface|null
  68       */
  69      protected $classSignatureGenerator;
  70  
  71      public function setProxyAutoloader(AutoloaderInterface $proxyAutoloader) : void
  72      {
  73          $this->proxyAutoloader = $proxyAutoloader;
  74      }
  75  
  76      public function getProxyAutoloader() : AutoloaderInterface
  77      {
  78          return $this->proxyAutoloader
  79              ?: $this->proxyAutoloader = new Autoloader(
  80                  new FileLocator($this->getProxiesTargetDir()),
  81                  $this->getClassNameInflector()
  82              );
  83      }
  84  
  85      public function setProxiesNamespace(string $proxiesNamespace) : void
  86      {
  87          $this->proxiesNamespace = $proxiesNamespace;
  88      }
  89  
  90      public function getProxiesNamespace() : string
  91      {
  92          return $this->proxiesNamespace;
  93      }
  94  
  95      public function setProxiesTargetDir(string $proxiesTargetDir) : void
  96      {
  97          $this->proxiesTargetDir = $proxiesTargetDir;
  98      }
  99  
 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  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1