bitExpert\Disco\Proxy\LazyBean\MethodGenerator\WrapBeanAsLazy::__construct PHP Method

__construct() public method

Creates a new {@link \bitExpert\Disco\Proxy\LazyBean\MethodGenerator\Constructor}.
public __construct ( ReflectionClass $originalClass, BeanFactoryConfigurationProperty $beanFactoryConfigurationProperty )
$originalClass ReflectionClass
$beanFactoryConfigurationProperty bitExpert\Disco\Proxy\Configuration\PropertyGenerator\BeanFactoryConfigurationProperty
    public function __construct(ReflectionClass $originalClass, BeanFactoryConfigurationProperty $beanFactoryConfigurationProperty)
    {
        parent::__construct('wrapBeanAsLazy');
        $this->setParameter(new ParameterGenerator('beanId'));
        $this->setParameter(new ParameterGenerator('beanType'));
        $this->setParameter(new ParameterGenerator('instance'));
        $content = '$factory = new \\' . \bitExpert\Disco\Proxy\LazyBean\LazyBeanFactory::class . '($beanId, $this->' . $beanFactoryConfigurationProperty->getName() . '->getProxyManagerConfiguration());' . PHP_EOL;
        $content .= '$initializer = function (&$wrappedObject, \\' . \ProxyManager\Proxy\LazyLoadingInterface::class . ' $proxy, $method, array $parameters, &$initializer) use($instance) {' . PHP_EOL;
        $content .= '    $initializer = null;' . PHP_EOL;
        $content .= '    $wrappedObject = $instance;' . PHP_EOL;
        $content .= '    return true;' . PHP_EOL;
        $content .= '};' . PHP_EOL;
        $content .= PHP_EOL;
        $content .= '$initializer->bindTo($this);' . PHP_EOL;
        $content .= 'return $factory->createProxy($beanType, $initializer);' . PHP_EOL;
        $this->setBody($content);
    }
WrapBeanAsLazy