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 |
/** * @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()); }
/** * 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()); }
/** * {@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; }
/** * 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; }
/** * 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; }