getCompilerPassConfig() public method

Returns the compiler pass config which can then be modified.
public getCompilerPassConfig ( ) : PassConfig
return Symfony\Component\DependencyInjection\Compiler\PassConfig 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;
 }
Example #8
0
 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());
 }
Example #12
0
 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);
 }
Example #18
0
 /**
  * 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());
 }
Example #21
0
 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();
 }
Example #23
0
    /**
     * 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;
 }
Example #25
0
 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());
 }
Example #29
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()));
     $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();
 }