* @license MIT */ class AccessInterceptorScopeLocalizerFactory extends AbstractBaseFactory { /** * @var \ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizerGenerator|null */ private $generator; /** * @param object $instance the object to be localized within the access interceptor * @param \Closure[] $prefixInterceptors an array (indexed by method name) of interceptor closures to be called * before method logic is executed * @param \Closure[] $suffixInterceptors an array (indexed by method name) of interceptor closures to be called * after method logic is executed * * @return \ProxyManager\Proxy\AccessInterceptorInterface */ public function createProxy($instance, array $prefixInterceptors = array(), array $suffixInterceptors = array()) { $proxyClassName = $this->generateProxy(get_class($instance)); return new $proxyClassName($instance, $prefixInterceptors, $suffixInterceptors); } /** * {@inheritDoc} */ protected function getGenerator() { return $this->generator ?: $this->generator = new AccessInterceptorScopeLocalizerGenerator(); } }