Returns the compiler pass config which can then be modified.
public getCompilerPassConfig ( ) : |
||
Результат | The compiler pass config |
protected function getContainer() { $container = new ContainerBuilder(); $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../../../Resources/config')); $loader->load('monolog.xml'); $definition = $container->getDefinition('monolog.logger_prototype'); $container->set('monolog.handler.test', new Definition('%monolog.handler.null.class%', array(100, false))); $definition->addMethodCall('pushHandler', array(new Reference('monolog.handler.test'))); // Handlers $container->set('monolog.handler.a', new Definition('%monolog.handler.null.class%', array(100, false))); $container->set('monolog.handler.b', new Definition('%monolog.handler.null.class%', array(100, false))); $container->set('monolog.handler.c', new Definition('%monolog.handler.null.class%', array(100, false))); // Channels foreach (array('test', 'foo', 'bar') as $name) { $service = new Definition('TestClass', array('false', new Reference('logger'))); $service->addTag('monolog.logger', array('channel' => $name)); $container->setDefinition($name, $service); } $container->setParameter('monolog.handlers_to_channels', array('monolog.handler.a' => array('type' => 'inclusive', 'elements' => array('test')), 'monolog.handler.b' => null, 'monolog.handler.c' => array('type' => 'exclusive', 'elements' => array('foo')))); $container->getCompilerPassConfig()->setOptimizationPasses(array()); $container->getCompilerPassConfig()->setRemovingPasses(array()); $container->addCompilerPass(new LoggerChannelPass()); $container->compile(); return $container; }
protected function compileContainer(ContainerBuilder $container) { $container->getCompilerPassConfig()->setOptimizationPasses(array()); $container->getCompilerPassConfig()->setRemovingPasses(array()); $container->addCompilerPass(new CryptorInjectorPass()); $container->compile(); return $container; }
public function testProcessorPass() { $compilerPasses = $this->container->getCompilerPassConfig()->getPasses(); $processorPasses = array_filter($compilerPasses, function (CompilerPassInterface $compilerPass) { return $compilerPass instanceof ProcessorsPass; }); $this->assertCount(1, $processorPasses); }
public function testCompilerPassIsRegistered() { $bundle = new BernardBundle(); $bundle->build($this->container); $passes = $this->container->getCompilerPassConfig()->getBeforeOptimizationPasses(); $this->assertCount(2, $passes); $this->assertInstanceOf('Bernard\\BernardBundle\\DependencyInjection\\Compiler\\ReceiverPass', $passes[0]); $this->assertInstanceOf('Bernard\\BernardBundle\\DependencyInjection\\Compiler\\NormalizerPass', $passes[1]); }
/** * @test */ public function loadsTheExtension() { $container = new ContainerBuilder(); $container->registerExtension(new PieceQuestetraExtension()); $container->loadFromExtension('piece_questetra', array('context_root' => 'https://www.example.com/01234567', 'authentication' => array('user_id' => '*****@*****.**', 'password' => 'u7K1TzgUFcvOG0Ui'))); $container->getCompilerPassConfig()->setOptimizationPasses(array()); $container->getCompilerPassConfig()->setRemovingPasses(array()); $container->compile(); $this->assertTrue($container->has('piece_questetra.questetra_client')); }
private function getContainer($file) { $container = new ContainerBuilder(); $container->registerExtension(new JuSimpleSearchExtension()); $fileLocator = new FileLocator(__DIR__ . '/Fixtures'); $loader = new YamlFileLoader($container, $fileLocator); $loader->load($file); $container->getCompilerPassConfig()->setOptimizationPasses(array()); $container->getCompilerPassConfig()->setRemovingPasses(array()); return $container; }
private function getContainer($file, $debug = false) { $container = new ContainerBuilder(new ParameterBag(array('kernel.debug' => $debug))); $container->registerExtension(new VilksFileSearchExtension()); $locator = new FileLocator(__DIR__ . '/Fixtures'); $loader = new YamlFileLoader($container, $locator); $loader->load($file); $container->getCompilerPassConfig()->setOptimizationPasses(array()); $container->getCompilerPassConfig()->setRemovingPasses(array()); $container->compile(); return $container; }
public function compile() { /** * @var $pass tubepress_spi_ioc_CompilerPassInterface */ foreach ($this->_tubePressCompilerPasses as $pass) { $pass->process($this); } $compilerConfig = $this->_delegateContainerBuilder->getCompilerPassConfig(); $compilerConfig->setRemovingPasses(array(new \Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass(), new \Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass(), new \Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass(), new \Symfony\Component\DependencyInjection\Compiler\RepeatedPass(array(new \Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass(), new \Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass())), new \Symfony\Component\DependencyInjection\Compiler\CheckExceptionOnInvalidReferenceBehaviorPass())); $this->_delegateContainerBuilder->compile(); }
private function getContainer($file, $parameters = [], $debug = false) { $container = new ContainerBuilder(new ParameterBag(array_merge($parameters, ['kernel.debug' => $debug]))); $container->registerExtension(new TreeHouseBaseApiExtension()); $locator = new FileLocator(__DIR__ . '/../Fixtures'); $loader = new YamlFileLoader($container, $locator); $loader->load($file); $container->getCompilerPassConfig()->setOptimizationPasses([]); $container->getCompilerPassConfig()->setRemovingPasses([]); $container->compile(); return $container; }
/** * @param string $file * * @return ContainerBuilder */ private function loadContainerFromFile($file) { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); $container->setParameter('kernel.cache_dir', '/tmp'); $container->registerExtension(new OpenOrchestraMediaModelExtension()); $locator = new FileLocator(__DIR__ . '/Fixtures/config/'); $loader = new YamlFileLoader($container, $locator); $loader->load($file . '.yml'); $container->getCompilerPassConfig()->setOptimizationPasses(array()); $container->getCompilerPassConfig()->setRemovingPasses(array()); $container->compile(); return $container; }
/** * @param ContainerBuilder $container */ public function build(ContainerBuilder $container) { $passConfig = $container->getCompilerPassConfig(); $passConfig->addPass(new AnnotationConfigurationPass($this->kernel)); $passConfig->addPass(new ServiceConfigurationPass()); $container->addCompilerPass(new GlobalTaggedServicesPass()); }
public static function prependBeforeOptimizationPass(ContainerBuilder $container, CompilerPassInterface $compilerPass) { $compilerPassConfig = $container->getCompilerPassConfig(); $beforeOptimizationPasses = $compilerPassConfig->getBeforeOptimizationPasses(); array_unshift($beforeOptimizationPasses, $compilerPass); $compilerPassConfig->setBeforeOptimizationPasses($beforeOptimizationPasses); }
protected function getContainer() { $container = new ContainerBuilder(); $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../../../Resources/config')); $loader->load('monolog.xml'); $definition = $container->getDefinition('monolog.logger_prototype'); $container->set('monolog.handler.test', new Definition('%monolog.handler.null.class%', array(100, false))); $definition->addMethodCall('pushHandler', array(new Reference('monolog.handler.test'))); $service = new Definition('TestClass', array('false', new Reference('logger'))); $service->addTag('monolog.logger', array('channel' => 'test')); $container->setDefinition('test', $service); $container->getCompilerPassConfig()->setOptimizationPasses(array()); $container->getCompilerPassConfig()->setRemovingPasses(array()); $container->addCompilerPass(new LoggerChannelPass()); $container->compile(); return $container; }
private function loadExtension(array $config, $compile = true) { $config = array_merge(['transports' => ['amqp' => []]], $config); $this->extension->load(['event_band' => $config], $this->container); $this->container->getCompilerPassConfig()->setRemovingPasses(array()); if ($compile) { $this->container->compile(); } }
/** * @test */ public function registersMappingFilesInTheSpecifiedDirectories() { $container = new ContainerBuilder(new ParameterBag(array('kernel.debug' => false, 'kernel.bundles' => array('FrameworkBundle' => 'Symfony\\Bundle\\FrameworkBundle\\FrameworkBundle', 'PieceValidationDirectoryLoaderBundle' => 'Piece\\Bundle\\ValidationDirectoryLoaderBundle\\PieceValidationDirectoryLoaderBundle'), 'kernel.cache_dir' => __DIR__))); $container->registerExtension(new FrameworkExtension()); $container->registerExtension(new PieceValidationDirectoryLoaderExtension()); $container->loadFromExtension('framework', array('secret' => '154F520832A9BC66316C259EEC70E4FA671A12F5', 'validation' => array('enable_annotations' => false))); $container->loadFromExtension('piece_validationdirectoryloader', array('mapping_dirs' => array(__DIR__ . '/Fixtures/validation/a', __DIR__ . '/Fixtures/validation/b'))); $container->getCompilerPassConfig()->setOptimizationPasses(array()); $container->getCompilerPassConfig()->setRemovingPasses(array()); $container->compile(); foreach (array(new Foo(), new Bar(), new Baz()) as $entity) { $violations = $container->get('validator')->validate($entity); $this->assertEquals(1, count($violations)); $this->assertSame($entity, $violations[0]->getRoot()); $entityClass = new \ReflectionObject($entity); $this->assertEquals(strtolower($entityClass->getShortName()), $violations[0]->getPropertyPath()); } }
public function build(ContainerBuilder $container) { $config = $container->getCompilerPassConfig(); $passes = $config->getBeforeOptimizationPasses(); $pass = new AutoAddConsoleCommandPass($this->kernel->getBundles()); array_unshift($passes, $pass); $config->setBeforeOptimizationPasses($passes); $container->addCompilerPass(new AddConsoleCommandPass()); }
public function build(ContainerBuilder $container) { $container->addCompilerPass(new ElasticSearchCompilerPass()); foreach ($container->getCompilerPassConfig()->getPasses() as $pass) { if ($pass instanceof RegistryCompilerPass) { return; } } $container->addCompilerPass(new RegistryCompilerPass(), PassConfig::TYPE_OPTIMIZE); }
/** * Remove the CheckExceptionOnInvalidReferenceBehaviorPass because * it was not looking into PHP-DI's entries and thus throwing exceptions. * * @todo Replace it by an alternative that can search into PHP-DI too * Problem: PHP-DI is not initialized when Symfony's container is compiled, because * it depends on Symfony's container for fallback (cycle…) * * @param ContainerBuilder $container */ private function removeInvalidReferenceBehaviorPass(ContainerBuilder $container) { $passConfig = $container->getCompilerPassConfig(); $compilationPasses = $passConfig->getRemovingPasses(); foreach ($compilationPasses as $i => $pass) { if ($pass instanceof CheckExceptionOnInvalidReferenceBehaviorPass) { unset($compilationPasses[$i]); break; } } $passConfig->setRemovingPasses($compilationPasses); }
private function addRegisterClassNamedServicesPass(ContainerBuilder $builder) { $compilerPass = new RegisterClassNamedServicesPass(); $passConfig = $builder->getCompilerPassConfig(); $passes = $passConfig->getOptimizationPasses(); foreach ($passes as $key => $pass) { if ($pass instanceof ResolveReferencesToAliasesPass) { array_splice($passes, $key, 0, [$compilerPass]); break; } } $passConfig->setOptimizationPasses($passes); $builder->addObjectResource($compilerPass); }
public function build(ContainerBuilder $container) { if (!$container->hasExtension('security')) { throw new \LogicException('The JMSSecurityExtraBundle must be registered after the SecurityBundle in your AppKernel.php.'); } $container->registerExtension(new SecurityExtension($container->getExtension('security'))); $passConfig = $container->getCompilerPassConfig(); // needs to run before voter collection $passes = $passConfig->getBeforeOptimizationPasses(); array_unshift($passes, new DisableVotersPass()); $passConfig->setBeforeOptimizationPasses($passes); $passConfig->addPass(new AddAfterInvocationProvidersPass()); $passConfig->addPass(new CollectSecuredServicesPass()); $passConfig->addPass(new AddExpressionCompilersPass()); $passConfig->addPass(new IntegrationPass()); }
protected function getContainer(array $config = array()) { $container = new ContainerBuilder(); $container->getCompilerPassConfig()->setOptimizationPasses(array()); $container->getCompilerPassConfig()->setRemovingPasses(array()); $container->addCompilerPass(new LoggerChannelPass()); $loader = new MonologExtension(); $loader->load($config, $container); $container->compile(); return $container; }
private function compileContainer(ContainerBuilder $container) { $container->getCompilerPassConfig()->setOptimizationPasses(array()); $container->getCompilerPassConfig()->setRemovingPasses(array()); $container->compile(); }
/** * Builds the service container. * * @return ContainerBuilder The compiled service container */ protected function buildContainer() { $parameterBag = new ParameterBag($this->getKernelParameters()); $container = new ContainerBuilder($parameterBag); $container->getCompilerPassConfig()->setMergePass(new MergeExtensionConfigurationPass()); foreach ($this->bundles as $bundle) { $bundle->build($container); if ($this->debug) { $container->addObjectResource($bundle); } } $container->addObjectResource($this); if (null !== $cont = $this->registerContainerConfiguration($this->getContainerLoader($container))) { $container->merge($cont); } foreach (array('cache', 'logs') as $name) { $dir = $container->getParameter(sprintf('kernel.%s_dir', $name)); if (!is_dir($dir)) { if (false === @mkdir($dir, 0777, true)) { exit(sprintf("Unable to create the %s directory (%s)\n", $name, dirname($dir))); } } elseif (!is_writable($dir)) { exit(sprintf("Unable to write in the %s directory (%s)\n", $name, $dir)); } } $container->compile(); return $container; }
/** * @param string $file * @param string $type * @return ContainerBuilder */ private function loadContainerFromFile($file, $type) { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); $container->setParameter('kernel.cache_dir', '/tmp'); $container->registerExtension(new SwiftmailerExtension()); $locator = new FileLocator(__DIR__ . '/Fixtures/config/' . $type); switch ($type) { case 'xml': $loader = new XmlFileLoader($container, $locator); break; case 'yml': $loader = new YamlFileLoader($container, $locator); break; case 'php': $loader = new PhpFileLoader($container, $locator); break; } $loader->load($file . '.' . $type); $container->getCompilerPassConfig()->setOptimizationPasses(array()); $container->getCompilerPassConfig()->setRemovingPasses(array()); $container->compile(); return $container; }
private function prepareContainer($cache, $containerFilename, $metadata, $className) { $container = new ContainerBuilder(); $container->setParameter('jms_aop.cache_dir', $this->container->getParameter('jms_di_extra.cache_dir')); $def = $container->register('jms_aop.interceptor_loader', 'JMS\\AopBundle\\Aop\\InterceptorLoader')->addArgument(new Reference('service_container'))->setPublic(false); // add resources $ref = $metadata->getOutsideClassMetadata()->reflection; while ($ref && false !== ($filename = $ref->getFilename())) { $container->addResource(new FileResource($filename)); $ref = $ref->getParentClass(); } // add definitions $definitions = $this->container->get('jms_di_extra.metadata.converter')->convert($metadata); $serviceIds = $parameters = array(); $controllerDef = array_pop($definitions); $container->setDefinition('controller', $controllerDef); foreach ($definitions as $id => $def) { $container->setDefinition($id, $def); } $this->generateLookupMethods($controllerDef, $metadata); $config = $container->getCompilerPassConfig(); $config->setOptimizationPasses(array()); $config->setRemovingPasses(array()); $config->addPass(new ResolveDefinitionTemplatesPass()); $config->addPass(new PointcutMatchingPass($this->container->get('jms_aop.pointcut_container')->getPointcuts())); $config->addPass(new InlineServiceDefinitionsPass()); $container->compile(); if (!file_exists($dir = dirname($containerFilename))) { if (false === @mkdir($dir, 0777, true)) { throw new \RuntimeException(sprintf('Could not create directory "%s".', $dir)); } } static $generator; if (null === $generator) { $generator = new DefinitionInjectorGenerator(); } $cache->write($generator->generate($container->getDefinition('controller'), $className), $container->getResources()); }
private function compileContainer(ContainerBuilder $container) { $container->getCompilerPassConfig()->setOptimizationPasses([new ResolveDefinitionTemplatesPass()]); $container->getCompilerPassConfig()->setRemovingPasses([]); $container->compile(); }
protected function compileContainer(ContainerBuilder $container) { $container->getCompilerPassConfig()->setOptimizationPasses(array(new ResolveDefinitionTemplatesPass())); $container->getCompilerPassConfig()->setRemovingPasses(array()); $container->compile(); }
protected function setUp() { $this->container = new ContainerBuilder(); $this->container->getCompilerPassConfig()->setOptimizationPasses(array()); $this->container->getCompilerPassConfig()->setRemovingPasses(array()); }
/** * 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())); $extensions_alias = array(); foreach ($extensions as $extension) { $container->registerExtension($extension); $extensions_alias[] = $extension->getAlias(); } $container->getCompilerPassConfig()->setMergePass(new MergeExtensionConfigurationPass($extensions_alias)); return $container; }
public function getCompilerPassConfig() { return $this->delegate->getCompilerPassConfig(); }