[ Index ] |
PHP Cross Reference of phpBB-3.3.14-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 3 declare(strict_types=1); 4 5 namespace ProxyManager\Factory; 6 7 use ProxyManager\Proxy\AccessInterceptorInterface; 8 use ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizerGenerator; 9 use ProxyManager\ProxyGenerator\ProxyGeneratorInterface; 10 use ProxyManager\Signature\Exception\InvalidSignatureException; 11 use ProxyManager\Signature\Exception\MissingSignatureException; 12 13 /** 14 * Factory responsible of producing proxy objects 15 * 16 * @author Marco Pivetta <ocramius@gmail.com> 17 * @license MIT 18 */ 19 class AccessInterceptorScopeLocalizerFactory extends AbstractBaseFactory 20 { 21 /** 22 * @var \ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizerGenerator|null 23 */ 24 private $generator; 25 26 /** 27 * @param object $instance the object to be localized within the access interceptor 28 * @param \Closure[] $prefixInterceptors an array (indexed by method name) of interceptor closures to be called 29 * before method logic is executed 30 * @param \Closure[] $suffixInterceptors an array (indexed by method name) of interceptor closures to be called 31 * after method logic is executed 32 * 33 * @throws InvalidSignatureException 34 * @throws MissingSignatureException 35 * @throws \OutOfBoundsException 36 */ 37 public function createProxy( 38 $instance, 39 array $prefixInterceptors = [], 40 array $suffixInterceptors = [] 41 ) : AccessInterceptorInterface { 42 $proxyClassName = $this->generateProxy(get_class($instance)); 43 44 return $proxyClassName::staticProxyConstructor($instance, $prefixInterceptors, $suffixInterceptors); 45 } 46 47 /** 48 * {@inheritDoc} 49 */ 50 protected function getGenerator() : ProxyGeneratorInterface 51 { 52 return $this->generator ?: $this->generator = new AccessInterceptorScopeLocalizerGenerator(); 53 } 54 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Mon Nov 25 19:05:08 2024 | Cross-referenced by PHPXref 0.7.1 |