Adds a compiler pass.
public addCompilerPass ( Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION ) : |
||
$pass | Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface | A compiler pass |
$type | string | The type of compiler pass |
Результат | The current instance |
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $container->addCompilerPass(new DelegatingLoaderCloningCompilerPass()); $routingResourcesProvider = new ExtensionPoint('modera_routing.routing_resources'); $docs = <<<TEXT This extension points make it possible for bundles to dynamically contribute routing resources so Symfony can detect them, this way when a new bundle is added then you don't need to update root routing.yml file every time. This how a sample contribution could look like: use Sli\\ExpanderBundle\\Ext\\ContributorInterface; class RoutingResourcesProvider implements ContributorInterface { /** * @inheritDoc */ public function getItems() { return array( '@ModeraBackendLanguagesBundle/Resources/config/routing.yml' ); } } TEXT; $routingResourcesProvider->setDetailedDescription($docs); $routingResourcesProvider->setDescription('Allows to dynamically add routing files.'); $container->addCompilerPass($routingResourcesProvider->createCompilerPass()); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $container->addCompilerPass(new ScopePolicyCompilerPass()); $container->addCompilerPass(new MetadataCompilerPass()); $container->addCompilerPass(new AuthorizationCodeGrantTypeCompilerPass()); $container->addCompilerPass(new TokenEndpointCompilerPass()); }
protected function setUp() { $this->container = new ContainerBuilder(); $this->loader = new YamlFileLoader($this->container, new FileLocator()); $this->container->addCompilerPass(new ExpandServiceValuesPass()); $this->container->addCompilerPass(new AutowiringPass()); }
public function build(ContainerBuilder $container) { if (self::getEnvMode()) { $container->addCompilerPass(new TwigEnginePass()); $container->addCompilerPass(new ProfilerCompilerPass()); } }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $container->addCompilerPass(new LoggerPass()); $container->addCompilerPass(new SecurityContextPass()); $container->addCompilerPass(new TagSubscriberPass()); $container->addCompilerPass(new HashGeneratorPass()); }
public function build(ContainerBuilder $container) { $container->addCompilerPass(new ConfigureMiddlewares('simple_bus.asynchronous.command_bus', 'asynchronous_command_bus_middleware')); $container->addCompilerPass(new RegisterHandlers('simple_bus.asynchronous.command_bus.command_handler_map', 'asynchronous_command_handler', 'handles')); $container->addCompilerPass(new ConfigureMiddlewares('simple_bus.asynchronous.event_bus', 'asynchronous_event_bus_middleware')); $container->addCompilerPass(new RegisterSubscribers('simple_bus.asynchronous.event_bus.event_subscribers_collection', 'asynchronous_event_subscriber', 'subscribes_to')); }
protected function setUp() { $this->container = new ContainerBuilder(); $this->mainBusDefinition = new Definition('stdClass'); $this->container->setDefinition($this->mainBusId, $this->mainBusDefinition); $this->container->addCompilerPass(new ConfigureMiddlewares($this->mainBusId, $this->middlewareTag)); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $container->addCompilerPass(new StatusRendererCompilerPass()); $container->addCompilerPass(new AdapterCompilerPass()); $container->addCompilerPass(new FormFactoryCompilerPass()); $this->registerFormMapping(); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $container->addCompilerPass(new Compiler\ConfiguratorPass()); $container->addCompilerPass(new Compiler\TemplatingPass()); $container->addCompilerPass(new Compiler\TranslationsPass()); $container->addCompilerPass(new Compiler\ModelPass()); }
/** * @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; }
/** * Initialize the service container (and extensions), and load the config file * * @param \Symfony\Component\Console\Input\InputInterface $input * @param \Symfony\Component\Console\Output\OutputInterface $output * * @throws \Exception if user-provided configuration file causes an error */ protected function initialize(InputInterface $input, OutputInterface $output) { $root = $input->getArgument('root'); // Setup container $containerBuilder = new ContainerBuilder(); $extension = new BrancherExtension(); $containerBuilder->registerExtension($extension); $containerBuilder->addCompilerPass(new ExtensionCompilerPass()); $containerBuilder->addCompilerPass(new RegisterListenersPass('event_dispatcher', 'brancher.event_listener', 'brancher.event_subscriber')); // Try and load config file $locator = new FileLocator([getcwd(), $input->getArgument('root'), __DIR__ . '/../']); /** @var \Symfony\Component\DependencyInjection\Loader\FileLoader $loader */ $loader = new DelegatingLoader(new LoaderResolver([new YamlFileLoader($containerBuilder, $locator), new XmlFileLoader($containerBuilder, $locator), new PhpFileLoader($containerBuilder, $locator), new IniFileLoader($containerBuilder, $locator)])); $config = null; try { $config = $locator->locate($input->getOption('config')); $loader->load($input->getOption('config')); } catch (\Exception $ex) { // Only rethrow if the issue was with the user-provided value if ($input->getOption('config') !== '_config.yml') { throw $ex; } } // Add in final config from command line options $containerBuilder->setParameter('castlepointanime.brancher.build.config', $config); $containerBuilder->loadFromExtension($extension->getAlias(), ['build' => array_filter(['config' => dirname($config) ?: $root, 'root' => $root, 'special' => $input->getOption('special'), 'output' => $input->getArgument('output'), 'templates' => array_filter(array_map('realpath', $input->getOption('template-dir')), 'is_dir'), 'data' => $input->getOption('data-dir'), 'exclude' => $input->getOption('exclude')])]); $containerBuilder->compile(); $this->setContainer($containerBuilder); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $interfaces = array('DAG\\Component\\Option\\Model\\OptionInterface' => 'dag.model.option.class', 'DAG\\Component\\Option\\Model\\OptionValueInterface' => 'dag.model.option_value.class'); $container->addCompilerPass(new ResolveDoctrineTargetEntitiesPass('dag_option', $interfaces)); $mappings = array(realpath(__DIR__ . '/Resources/config/doctrine/model') => 'DAG\\Component\\Option\\Model'); $container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($mappings, array('doctrine.orm.entity_manager'), 'dag_option.driver.doctrine/orm')); }
public function build(ContainerBuilder $container) { $container->addCompilerPass(new CompilerPass\DatagridConfiguratorPass()); $container->addCompilerPass(new CompilerPass\TwigRenderEnginePass()); $container->addCompilerPass(new CompilerPass\ExtensionPass()); $container->addCompilerPass(new CompilerPass\RuntimeLoaderPass()); }
public function build(ContainerBuilder $container) { $container->addCompilerPass(new TemplateResourcesPass()); $container->addCompilerPass(new TemplateLoaderPass()); $container->addCompilerPass(new ThemeLoaderPass()); $container->addCompilerPass(new TwigLoaderPass()); }
protected function setUp() { $this->container = new ContainerBuilder(); $this->closeBufferHandlersDefinition = new Definition('LongRunning\\Plugin\\MonologPlugin\\CloseBufferHandlers', array(array())); $this->container->setDefinition('long_running.monolog.close_buffer_handlers', $this->closeBufferHandlersDefinition); $this->container->addCompilerPass(new MonologCleanersPass()); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $interfaces = array('Accard\\Component\\Core\\Model\\PatientPhaseInterface' => 'accard.model.patient_phase.class', 'Accard\\Component\\Core\\Model\\PatientPhaseInstanceInterface' => 'accard.model.patient_phase_instance.class', 'Accard\\Component\\Core\\Model\\DiagnosisPhaseInterface' => 'accard.model.diagnosis_phase.class', 'Accard\\Component\\Core\\Model\\DiagnosisPhaseInstanceInterface' => 'accard.model.diagnosis_phase_instance.class'); $container->addCompilerPass(new ResolveDoctrineTargetEntitiesPass('accard_core', $interfaces), PassConfig::TYPE_BEFORE_REMOVING); $mappings = array(realpath(__DIR__ . '/Resources/config/doctrine/model') => 'Accard\\Component\\Core\\Model'); $container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($mappings, array('doctrine.orm.entity_manager'), 'accard_core.driver.doctrine/orm')); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $interfaces = array('Accard\\Component\\Drug\\Model\\DrugInterface' => 'accard.model.drug.class', 'Accard\\Component\\Drug\\Model\\DrugGroupInterface' => 'accard.model.drug_group.class'); $container->addCompilerPass(new ResolveDoctrineTargetEntitiesPass('accard_drug', $interfaces), PassConfig::TYPE_BEFORE_REMOVING); $mappings = array(realpath(__DIR__ . '/Resources/config/doctrine/model') => 'Accard\\Component\\Drug\\Model'); $container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($mappings, array('doctrine.orm.entity_manager'), 'accard_drug.driver.doctrine/orm')); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $container->addCompilerPass(new SerializerConfigurationPass()); $container->addCompilerPass(new ConfigurationCheckPass()); $container->addCompilerPass(new FormatListenerRulesPass()); $container->addCompilerPass(new TwigExceptionPass()); }
/** * {@inheritDoc} */ public function preload(ContainerBuilder $container) { // load compilers $container->addCompilerPass(new AsseticFilterPass()); $container->addCompilerPass(new AsseticResourceLoaderPass()); $container->addCompilerPass(new AsseticFormulaLoaderPass()); }
/** * Initializes the test environment. */ protected function setUp() { parent::setUp(); $this->container = $this->createContainer(); $this->compilerPass = new DecorateTranslatorCompilerPass(); $this->container->addCompilerPass($this->compilerPass); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $interfaces = array('Accard\\Component\\Activity\\Model\\ActivityInterface' => 'accard.model.activity.class', 'Accard\\Component\\Activity\\Model\\FieldInterface' => 'accard.model.activity_field.class', 'Accard\\Component\\Activity\\Model\\FieldValueInterface' => 'accard.model.activity_field_value.class', 'Accard\\Component\\Activity\\Model\\PrototypeInterface' => 'accard.model.activity_prototype.class'); $container->addCompilerPass(new ResolveDoctrineTargetEntitiesPass('accard_activity', $interfaces), PassConfig::TYPE_BEFORE_REMOVING); $mappings = array(realpath(__DIR__ . '/Resources/config/doctrine/model') => 'Accard\\Component\\Activity\\Model'); $container->addCompilerPass(DoctrineOrmMappingsPass::createXmlMappingDriver($mappings, array('doctrine.orm.entity_manager'), 'accard_activity.driver.doctrine/orm')); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $container->addCompilerPass(new TwigEnvironmentPass()); $container->addCompilerPass(new ApiSerializationPass()); $container->addCompilerPass(new ValidationPass()); $container->addCompilerPass(new MailerCompilerPass()); }
public function build(ContainerBuilder $container) { $container->addCompilerPass(new SubscribeKernelListenerPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION); // RegisterKernelListenersPass is registered on "BEFORE_REMOVING" since 2.3 $container->addCompilerPass(new SubscribePass(), PassConfig::TYPE_AFTER_REMOVING); $container->addCompilerPass(new JmsEventConfigPass()); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $container->addCompilerPass(new AddProviderCompilerPass()); $container->addCompilerPass(new GlobalVariablesCompilerPass()); $container->addCompilerPass(new SecurityContextCompilerPass()); $this->registerFormMapping(); }
/** * {@inheritDoc} */ public function build(ContainerBuilder $container) { $container->addCompilerPass(new AddDependencyCallsCompilerPass()); $container->addCompilerPass(new AddFilterTypeCompilerPass()); $container->addCompilerPass(new ExtensionCompilerPass()); $container->addCompilerPass(new GlobalVariablesCompilerPass()); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $container->addCompilerPass(new RegisterPass()); $container->addCompilerPass(new CacheWarmerPass()); $container->addCompilerPass(new LocalePass()); $container->addCompilerPass(new RestorableCachePass()); }
/** * {@inheritDoc} */ public function build(ContainerBuilder $container) { $container->addCompilerPass(new ConfigurationPass()); $container->addCompilerPass(new FormattersPass()); $container->addCompilerPass(new ActionsPass()); $container->addCompilerPass(new MassActionsPass()); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $container->addCompilerPass(new AopCompilerPass()); $container->addCompilerPass(new CollectOperationRunnersCompilerPass()); $container->addCompilerPass(new CollectMetricsCollectorsAndPublishers()); $container->addCompilerPass(new RabbitMqCompilerPass()); }
/** * {@inheritdoc} */ public function build(ContainerBuilder $container) { $interfaces = $this->getModelInterfaces(); if (!empty($interfaces)) { $container->addCompilerPass(new ResolveDoctrineTargetEntitiesPass($this->getBundlePrefix(), $interfaces)); } if (null !== $this->getModelNamespace()) { $className = get_class($this); foreach ($className::getSupportedDrivers() as $driver) { list($compilerPassClassName, $compilerPassMethod) = $this->getMappingCompilerPassInfo($driver); if (class_exists($compilerPassClassName)) { if (!method_exists($compilerPassClassName, $compilerPassMethod)) { throw new InvalidConfigurationException("The 'mappingFormat' value is invalid, must be 'xml', 'yml' or 'annotation'."); } switch ($this->mappingFormat) { case ResourceBundleInterface::MAPPING_XML: case ResourceBundleInterface::MAPPING_YAML: $container->addCompilerPass($compilerPassClassName::$compilerPassMethod(array($this->getConfigFilesPath() => $this->getModelNamespace()), array(sprintf('%s.object_manager', $this->getBundlePrefix())), sprintf('%s.driver.%s', $this->getBundlePrefix(), $driver))); break; case ResourceBundleInterface::MAPPING_ANNOTATION: $container->addCompilerPass($compilerPassClassName::$compilerPassMethod(array($this->getModelNamespace()), array($this->getConfigFilesPath()), array(sprintf('%s.object_manager', $this->getBundlePrefix())), sprintf('%s.driver.%s', $this->getBundlePrefix(), $driver))); break; } } } } }
protected function setUp() { $this->container = new ContainerBuilder(); $this->delegatingCleanerDefinition = new Definition('LongRunning\\Core\\DelegatingCleaner', array(array())); $this->container->setDefinition('long_running.delegating_cleaner', $this->delegatingCleanerDefinition); $this->container->addCompilerPass(new RegisterCleanersPass()); }