setProxyInstantiator() public method

Sets the instantiator to be used when fetching proxies.
public setProxyInstantiator ( Symfony\Component\DependencyInjection\LazyProxy\Instantiator\InstantiatorInterface $proxyInstantiator )
$proxyInstantiator Symfony\Component\DependencyInjection\LazyProxy\Instantiator\InstantiatorInterface
Example #1
0
 /**
  * @param string $path path to grumphp.yml
  *
  * @return ContainerBuilder
  */
 public static function buildFromConfiguration($path)
 {
     $container = new ContainerBuilder();
     $container->setProxyInstantiator(new RuntimeInstantiator());
     // Add compiler passes:
     $container->addCompilerPass(new Compiler\ExtensionCompilerPass());
     $container->addCompilerPass(new Compiler\PhpParserCompilerPass());
     $container->addCompilerPass(new Compiler\TaskCompilerPass());
     $container->addCompilerPass(new RegisterListenersPass('event_dispatcher', 'grumphp.event_listener', 'grumphp.event_subscriber'));
     // Load basic service file + custom user configuration
     $loader = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../../../resources/config'));
     $loader->load('formatter.yml');
     $loader->load('linters.yml');
     $loader->load('parameters.yml');
     $loader->load('parsers.yml');
     $loader->load('services.yml');
     $loader->load('subscribers.yml');
     $loader->load('tasks.yml');
     $loader->load('util.yml');
     // Load grumphp.yml file:
     $filesystem = new Filesystem();
     if ($filesystem->exists($path)) {
         $loader->load($path);
     }
     // Compile configuration to make sure that tasks are added to the taskrunner
     $container->compile();
     return $container;
 }
 public function testCreateProxyServiceWithRuntimeInstantiator()
 {
     $builder = new ContainerBuilder();
     $builder->setProxyInstantiator(new RuntimeInstantiator());
     $builder->register('foo1', 'ProxyManagerBridgeFooClass')->setFile(__DIR__ . '/Fixtures/includes/foo.php');
     $builder->getDefinition('foo1')->setLazy(true);
     /* @var $foo1 \ProxyManager\Proxy\LazyLoadingInterface|\ProxyManager\Proxy\ValueHolderInterface */
     $foo1 = $builder->get('foo1');
     $this->assertSame($foo1, $builder->get('foo1'), 'The same proxy is retrieved on multiple subsequent calls');
     $this->assertInstanceOf('\\ProxyManagerBridgeFooClass', $foo1);
     $this->assertInstanceOf('\\ProxyManager\\Proxy\\LazyLoadingInterface', $foo1);
     $this->assertFalse($foo1->isProxyInitialized());
     $foo1->initializeProxy();
     $this->assertSame($foo1, $builder->get('foo1'), 'The same proxy is retrieved after initialization');
     $this->assertTrue($foo1->isProxyInitialized());
     $this->assertInstanceOf('\\ProxyManagerBridgeFooClass', $foo1->getWrappedValueHolderValue());
     $this->assertNotInstanceOf('\\ProxyManager\\Proxy\\LazyLoadingInterface', $foo1->getWrappedValueHolderValue());
 }
Example #3
0
    /**
     * Gets a new ContainerBuilder instance used to build the service container.
     *
     * @return ContainerBuilder
     */
    protected function getContainerBuilder()
    {
        $container = new ContainerBuilder(new ParameterBag($this->getKernelParameters()));

        if (class_exists('ProxyManager\Configuration')) {
            $container->setProxyInstantiator(new RuntimeInstantiator());
        }

        return $container;
    }
 /**
  * @param ContainerBuilder $container
  */
 private function enableLazyServicesSupport(ContainerBuilder $container)
 {
     $container->setProxyInstantiator(new RuntimeInstantiator());
 }
Example #5
0
 /**
  * {@inheritdoc}
  */
 protected function getContainerBuilder()
 {
     $container = new ContainerBuilder(new DrupalParameterBag($this->getKernelParameters()));
     $container->setParameter('kernel.drupal_site_path', DRUPAL_ROOT . '/' . conf_path());
     if (class_exists('ProxyManager\\Configuration') && class_exists('Symfony\\Bridge\\ProxyManager\\LazyProxy\\Instantiator\\RuntimeInstantiator')) {
         $container->setProxyInstantiator(new RuntimeInstantiator());
     }
     return $container;
 }
Example #6
0
 /**
  * Gets a new ContainerBuilder instance used to build the service container.
  *
  * @return ContainerBuilder
  */
 protected function getContainerBuilder()
 {
     $container = new ContainerBuilder();
     $container->getParameterBag()->add($this->getKernelParameters());
     if (class_exists('ProxyManager\\Configuration') && class_exists('Symfony\\Bridge\\ProxyManager\\LazyProxy\\Instantiator\\RuntimeInstantiator')) {
         $container->setProxyInstantiator(new RuntimeInstantiator());
     }
     return $container;
 }
Example #7
0
 /**
  * Create the ContainerBuilder object
  *
  * @param array $extensions Array of Container extension objects
  * @return ContainerBuilder object
  */
 protected function create_container(array $extensions)
 {
     $container = new ContainerBuilder(new ParameterBag($this->get_core_parameters()));
     $container->setProxyInstantiator(new RuntimeInstantiator());
     $extensions_alias = array();
     foreach ($extensions as $extension) {
         $container->registerExtension($extension);
         $extensions_alias[] = $extension->getAlias();
     }
     $container->getCompilerPassConfig()->setMergePass(new MergeExtensionConfigurationPass($extensions_alias));
     return $container;
 }