/** * {@inheritDoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('shorty.xml'); foreach ($config['providers'] as $providerName => $providerConfiguration) { switch ($providerConfiguration['id']) { case 'google': $definition = new Definition($container->getParameter('rezzza.shorty.google.class'), array($providerConfiguration['key'])); $definition->addMethodCall('setHttpAdapter', array(new Definition($providerConfiguration['http_adapter']))); $container->setDefinition($this->getShortyProviderName($providerName), $definition); break; case 'bitly': $definition = new Definition($container->getParameter('rezzza.shorty.bitly.class'), array($providerConfiguration['access_token'])); $definition->addMethodCall('setHttpAdapter', array(new Definition($providerConfiguration['http_adapter']))); $container->setDefinition($this->getShortyProviderName($providerName), $definition); break; case 'chain': $definition = new Definition($container->getParameter('rezzza.shorty.chain.class')); foreach ($providerConfiguration['providers'] as $provider) { $definition->addMethodCall('addProvider', array(new Reference($this->getShortyProviderName($provider)))); } $container->setDefinition($this->getShortyProviderName($providerName), $definition); break; default: $container->setAlias($this->getShortyProviderName($providerName), $providerConfiguration['id']); break; } } if (isset($config['default_provider'])) { $container->setAlias('rezzza.shorty', $this->getShortyProviderName($config['default_provider'])); } }
public function process(ContainerBuilder $container) { $definitions = new \SplPriorityQueue(); $order = PHP_INT_MAX; foreach ($container->getDefinitions() as $id => $definition) { if (!($decorated = $definition->getDecoratedService())) { continue; } $definitions->insert(array($id, $definition), array($decorated[2], --$order)); } foreach ($definitions as list($id, $definition)) { list($inner, $renamedId) = $definition->getDecoratedService(); $definition->setDecoratedService(null); if (!$renamedId) { $renamedId = $id . '.inner'; } // we create a new alias/service for the service we are replacing // to be able to reference it in the new one if ($container->hasAlias($inner)) { $alias = $container->getAlias($inner); $public = $alias->isPublic(); $container->setAlias($renamedId, new Alias((string) $alias, false)); } else { $definition = $container->getDefinition($inner); $public = $definition->isPublic(); $definition->setPublic(false); $container->setDefinition($renamedId, $definition); } $container->setAlias($inner, new Alias($id, $public)); } }
/** * {@inheritDoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); if (!in_array(strtolower($config['db_driver']), array('orm'))) { throw new \InvalidArgumentException(sprintf('Invalid database driver (bait_poll.db_driver) "%s".', $config['db_driver'])); } $loader->load(sprintf('%s.xml', $config['db_driver'])); $container->setParameter('bait_poll.model_manager_name', $config['model_manager_name']); $container->setParameter('bait_poll.form.type', $config['form']['type']); $container->setParameter('bait_poll.form.name', $config['form']['name']); $container->setAlias('bait_poll.form.factory', $config['form']['factory']); $container->setParameter('bait_poll.poll.class', $config['poll']['class']); $container->setParameter('bait_poll.field.class', $config['field']['class']); $container->setParameter('bait_poll.vote.class', $config['vote']['class']); $container->setParameter('bait_poll.form.template', $config['form']['template']); $container->setParameter('bait_poll.form.theme', $config['form']['theme']); $container->setAlias('bait_poll.vote.manager', $config['vote']['manager']); $container->setAlias('bait_poll.poll.manager', $config['poll']['manager']); $loader->load('form.xml'); $container->setParameter('bait_poll.cookie.prefix', $config['cookie']['prefix']); $container->setParameter('bait_poll.cookie.duration', $config['cookie']['duration']); $loader->load('poll.xml'); }
public function process( ContainerBuilder $container ) { if ( !$container->hasAlias( 'session.storage' ) ) { return; } $sessionStorageAlias = $container->getAlias( 'session.storage' ); $sessionStorageProxyDef = $container->findDefinition( 'ezpublish_legacy.session_storage_proxy' ); $sessionStorageProxyDef->replaceArgument( 1, new Reference( (string)$sessionStorageAlias ) ); $container->setAlias( 'session.storage', 'ezpublish_legacy.session_storage_proxy' ); if ( $container->hasAlias( 'session.handler' ) ) { $sessionHandlerAlias = $container->getAlias( 'session.handler' ); $interfaces = class_implements( $container->findDefinition( (string)$sessionHandlerAlias ) ); // Only swap session handler if it implements appropriate interface. if ( isset( $interfaces['SessionHandlerInterface'] ) ) { $sessionHandlerProxyDef = $container->findDefinition( 'ezpublish_legacy.session_handler_proxy' ); $sessionHandlerProxyDef->replaceArgument( 1, new Reference( (string)$sessionHandlerAlias ) ); $container->setAlias( 'session.handler', 'ezpublish_legacy.session_handler_proxy' ); } } }
/** * {@inheritDoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); foreach (array('services', 'form') as $service) { $loader->load(sprintf('%s.xml', $service)); } if ($config['service'] == 's3') { $loader->load('s3.xml'); } else { $loader->load('connector.xml'); } switch ($config['service']) { case 'php': $container->setAlias('jonlil_ckfinder.connector', 'jonlil.ckfinder.connector.php'); break; case 's3': $container->setAlias('jonlil_ckfinder.connector', 'jonlil.ckfinder.connector.s3'); $container->setParameter('jonlil_ckfinder.amazon', array('secret' => $config['secret'], 'bucket' => $config['bucket'], 'access_key' => $config['accessKey'], 'base_url' => $config['baseUrl'], 'base_dir' => $config['baseDir'], 'thumbnails_file' => $config['thumbnailsFile'], 'thumbnails_enabled' => $config['thumbnailsEnabled'], 'direct_access' => $config['directAccess'], 'file_delete' => $config['fileDelete'], 'file_rename' => $config['fileRename'], 'file_upload' => $config['fileUpload'], 'file_view' => $config['fileView'], 'folder_delete' => $config['folderDelete'], 'folder_rename' => $config['folderRename'], 'folder_create' => $config['folderCreate'], 'folder_view' => $config['folderView'])); $container->setParameter('jonlil_ckfinder.baseDir', $config['baseDir']); break; } $container->setParameter('jonlil_ckfinder.license', array('key' => $config['license']['key'], 'name' => $config['license']['name'])); $container->setParameter('jonlil_ckfinder.baseUrl', $config['baseUrl']); $container->setParameter('twig.form.resources', array_merge($container->getParameter('twig.form.resources'), array('JonlilCKFinderBundle:Form:ckfinder_widget.html.twig'))); }
/** * {@inheritdoc} */ public function process(ContainerBuilder $container) { if ($container->hasDefinition('doctrine')) { $definition = new DefinitionDecorator('dag.form.type.object_to_identifier'); $definition->addArgument(new Reference('doctrine')); $definition->addArgument('dag_entity_to_identifier'); $definition->addTag('form.type', array('alias' => 'dag_entity_to_identifier')); $container->setDefinition('dag_entity_to_identifier', $definition); } if ($container->hasDefinition('doctrine_mongodb')) { $definition = new DefinitionDecorator('dag.form.type.object_to_identifier'); $definition->addArgument(new Reference('doctrine_mongodb')); $definition->addArgument('dag_document_to_identifier'); $definition->addTag('form.type', array('alias' => 'dag_document_to_identifier')); $container->setDefinition('dag_document_to_identifier', $definition); if (!$container->hasDefinition('dag_entity_to_identifier')) { $container->setAlias('dag_entity_to_identifier', 'dag_document_to_identifier'); } } if ($container->hasDefinition('doctrine_phpcr')) { $definition = new DefinitionDecorator('dag.form.type.object_to_identifier'); $definition->addArgument(new Reference('doctrine_phpcr')); $definition->addArgument('dag_phpcr_document_to_identifier'); $definition->addTag('form.type', array('alias' => 'dag_phpcr_document_to_identifier')); $container->setDefinition('dag_phpcr_document_to_identifier', $definition); if (!$container->hasDefinition('dag_entity_to_identifier')) { $container->setAlias('dag_entity_to_identifier', 'dag_phpcr_document_to_identifier'); } } }
/** * {@inheritDoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $prefix = self::PREFIX; $container->setAlias($prefix . self::RECIPIENT_PROVIDER, $config[self::RECIPIENT_PROVIDER]); $container->setParameter($prefix . self::RECIPIENT_CLASS, $config[self::RECIPIENT_CLASS]); $container->setParameter($prefix . self::RECIPIENT_NEWSLETTER_FIELD, $config[self::RECIPIENT_NEWSLETTER_FIELD]); $container->setAlias($prefix . self::TEMPLATE_PROVIDER, $config[self::TEMPLATE_PROVIDER]); $container->setAlias($prefix . self::TEMPLATE_TWIG_SWIFT_MAILER, $config[self::TEMPLATE_TWIG_SWIFT_MAILER]); $container->setParameter($prefix . 'no_reply', array('email' => $config[self::NO_REPLY][self::NO_REPLY_EMAIL_ADDRESS], 'name' => $config[self::NO_REPLY][self::NO_REPLY_EMAIL_NAME])); $container->setParameter($prefix . self::TEMPLATE_IMAGE_DIR, realpath($config[self::TEMPLATE_IMAGE_DIR])); $allowedFolders = array(); foreach ($config[self::ALLOWED_IMAGES_FOLDERS] as $folder) { $allowedFolders[] = realpath($folder); } $container->setParameter($prefix . self::ALLOWED_IMAGES_FOLDERS, $allowedFolders); $container->setAlias($prefix . self::NOTIFIER_SERVICE, $config[self::NOTIFIER_SERVICE]); $container->setParameter($prefix . self::NEWSLETTER . "_" . self::NEWSLETTER_INTERVAL, $config[self::NEWSLETTER][self::NEWSLETTER_INTERVAL]); $container->setParameter($prefix . self::NEWSLETTER . "_" . self::NEWSLETTER_SEND_TIME, $config[self::NEWSLETTER][self::NEWSLETTER_SEND_TIME]); $container->setParameter($prefix . self::TEMPLATES . "_" . self::NEWSLETTER_TEMPLATE, $config[self::TEMPLATES][self::NEWSLETTER_TEMPLATE]); $container->setParameter($prefix . self::TEMPLATES . "_" . self::NOTIFICATIONS_TEMPLATE, $config[self::TEMPLATES][self::NOTIFICATIONS_TEMPLATE]); $container->setParameter($prefix . self::TEMPLATES . "_" . self::CONTENT_ITEM_TEMPLATE, $config[self::TEMPLATES][self::CONTENT_ITEM_TEMPLATE]); $container->setParameter($prefix . self::CAMPAIGN_PARAM_NAME, $config[self::CAMPAIGN_PARAM_NAME]); $container->setParameter($prefix . self::CAMPAIGN_KEYWORD_PARAM_NAME, $config[self::CAMPAIGN_KEYWORD_PARAM_NAME]); $container->setAlias($prefix . self::WEB_VIEW_SERVICE, $config[self::WEB_VIEW_SERVICE]); $container->setParameter($prefix . self::WEB_VIEW_RETENTION, $config[self::WEB_VIEW_RETENTION]); $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.yml'); }
/** * Loads the configs for Cache and puts data into the container. * * @param array $configs Array of configs * @param ContainerBuilder $container Container Object */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.yml'); // Configure client services $first = isset($config['providers']['default']) ? 'default' : null; foreach ($config['providers'] as $name => $arguments) { if ($first === null) { $first = $name; } $factoryClass = $container->getDefinition($arguments['factory'])->getClass(); $factoryClass::validate($arguments['options'], $name); // See if any option has a service reference $arguments['options'] = $this->findReferences($arguments['options']); $def = $container->register('cache.provider.' . $name, DummyAdapter::class); $def->setFactory([new Reference($arguments['factory']), 'createAdapter'])->addArgument($arguments['options']); $def->addTag('cache.provider'); foreach ($arguments['aliases'] as $alias) { $container->setAlias($alias, 'cache.provider.' . $name); } } if ($first !== null) { $container->setAlias('cache', 'cache.provider.' . $first); } }
public function process(ContainerBuilder $container) { $viewReferenceManagers = $container->findTaggedServiceIds('view_reference.manager'); $viewReferenceRepositories = $container->findTaggedServiceIds('view_reference.repository'); $connectors = []; $connectorType = $container->getParameter('victoire_view_reference.connector.type'); foreach ($viewReferenceManagers as $id => $tags) { foreach ($tags as $attributes) { $connectors[$attributes['connector']]['manager'] = $id; } } foreach ($viewReferenceRepositories as $id => $tags) { foreach ($tags as $attributes) { $connectors[$attributes['connector']]['repository'] = $id; } } if (!isset($connectorType)) { throw new \Exception('No manager and repository found to have ' . $connectorType . ' connector.'); } if (!isset($connectors[$connectorType]['manager'])) { throw new \Exception('No manager found to have ' . $connectorType . ' connector.'); } if (!isset($connectors[$connectorType]['repository'])) { throw new \Exception('No repository found to have ' . $connectorType . ' connector.'); } $container->setAlias('victoire_view_reference.connector.manager', $connectors[$connectorType]['manager']); $container->setAlias('victoire_view_reference.connector.repository', $connectors[$connectorType]['repository']); }
/** * {@inheritDoc} */ public function load(array $configs, ContainerBuilder $container) { $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config/')); $loader->load('services.xml'); $processor = new Processor(); $config = $processor->processConfiguration(new Configuration(), $configs); $collection = 'in_memory'; switch (true) { case 'redis' === $config['persistence']: $loader->load('redis.xml'); $collection = 'predis'; $container->setParameter('qandidate.toggle.redis.namespace', $config['redis_namespace']); $container->setAlias('qandidate.toggle.redis.client', $config['redis_client']); break; case 'factory' === $config['persistence']: $collection = 'factory'; $definition = new DefinitionDecorator('qandidate.toggle.collection.in_memory'); $definition->setFactory(array(new Reference($config['collection_factory']['service_id']), $config['collection_factory']['method'])); $container->setDefinition('qandidate.toggle.collection.factory', $definition); break; } $container->setAlias('qandidate.toggle.collection', 'qandidate.toggle.collection.' . $collection); $contextFactoryService = 'qandidate.toggle.user_context_factory'; if (null !== $config['context_factory']) { $contextFactoryService = $config['context_factory']; } $container->setAlias('qandidate.toggle.context_factory', $contextFactoryService); }
/** * {@inheritdoc} */ public function setUp() { $this->container_builder = new ContainerBuilder(); $this->container_builder->register('foo', 'My/Class'); $this->container_builder->setAlias('bar', 'foo'); $this->dumper = new PhpArrayDumper($this->container_builder); }
/** * {@inheritdoc} */ public function process(ContainerBuilder $container) { $container->getDefinition('jms_serializer.json_serialization_visitor')->addArgument($container->getDefinition('json_api.metadata_factory'))->addArgument('%json_api.show_version_info%')->setClass('Mango\\Bundle\\JsonApiBundle\\Serializer\\JsonApiSerializationVisitor'); $container->setAlias('jms_serializer', 'json_api.serializer'); $container->setAlias('serializer', 'json_api.serializer'); $container->setAlias('fos_rest.serializer', 'json_api.serializer'); }
public function process(ContainerBuilder $container) { if ($container->has('fos_rest.serializer')) { $class = $container->getParameterBag()->resolveValue($container->findDefinition('fos_rest.serializer')->getClass()); if (!is_subclass_of($class, 'FOS\\RestBundle\\Serializer\\Serializer')) { throw new \InvalidArgumentException(sprintf('"fos_rest.serializer" must implement FOS\\RestBundle\\Serializer\\Serializer (instance of "%s" given).', $class)); } return; } if (!$container->has('serializer') && !$container->has('jms_serializer.serializer')) { throw new \InvalidArgumentException('Neither a service called "jms_serializer.serializer" nor "serializer" is available and no serializer is explicitly configured. You must either enable the JMSSerializerBundle, enable the FrameworkBundle serializer or configure a custom serializer.'); } if ($container->has('serializer')) { $class = $container->getParameterBag()->resolveValue($container->findDefinition('serializer')->getClass()); if (is_subclass_of($class, 'Symfony\\Component\\Serializer\\SerializerInterface')) { $container->setAlias('fos_rest.serializer', 'fos_rest.serializer.symfony'); $container->removeDefinition('fos_rest.serializer.exception_wrapper_serialize_handler'); } elseif (is_subclass_of($class, 'JMS\\Serializer\\SerializerInterface')) { $container->setAlias('fos_rest.serializer', 'fos_rest.serializer.jms'); } elseif (is_subclass_of($class, 'FOS\\RestBundle\\Serializer\\Serializer')) { $container->setAlias('fos_rest.serializer', 'serializer'); } else { throw new \InvalidArgumentException(sprintf('"fos_rest.serializer" must implement FOS\\RestBundle\\Serializer\\Serializer (instance of "%s" given).', $class)); } return; } else { $container->removeDefinition('fos_rest.serializer.exception_wrapper_normalizer'); } if ($container->has('jms_serializer.serializer')) { $container->setAlias('fos_rest.serializer', 'fos_rest.serializer.jms'); } else { $container->removeDefinition('fos_rest.serializer.exception_wrapper_serialize_handler'); } }
public function process(ContainerBuilder $container) { // "query.max_query_count" is an array, it is only accessible // through "query" node and getting the "max_query_count" array // key with PHP. $query = $container->getParameter('liip_functional_test.query'); if (null === $query['max_query_count']) { $container->removeDefinition('liip_functional_test.query.count_client'); return; } if ($container->hasDefinition('test.client')) { // test.client is a definition. // Register it again as a private service to inject it as the parent $definition = $container->getDefinition('test.client'); $definition->setPublic(false); $container->setDefinition('liip_functional_test.query.count_client.parent', $definition); } elseif ($container->hasAlias('test.client')) { // test.client is an alias. // Register a private alias for this service to inject it as the parent $container->setAlias('liip_functional_test.query.count_client.parent', new Alias((string) $container->getAlias('test.client'), false)); } else { throw new \Exception('The LiipFunctionalTestBundle\'s Query Counter can only be used in the test environment.' . PHP_EOL . 'See https://github.com/liip/LiipFunctionalTestBundle#only-in-test-environment'); } $container->setAlias('test.client', 'liip_functional_test.query.count_client'); }
/** * {@inheritdoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('commands.xml'); $loader->load('controllers.xml'); $loader->load('form-handlers.xml'); $loader->load('form-subscribers.xml'); $loader->load('form-types.xml'); $loader->load('forms.xml'); $loader->load('handlers.xml'); $loader->load('jobs.xml'); $loader->load('services.xml'); if (!in_array(strtolower($config['db_driver']), ['mongodb', 'orm'])) { throw new \InvalidArgumentException(sprintf('Invalid db driver "%s".', $config['db_driver'])); } $loader->load('db_driver/' . sprintf('%s.xml', $config['db_driver'])); $container->setAlias($this->getAlias() . '.manager.job_configuration', $config['job_configuration_manager']); $container->setAlias($this->getAlias() . '.manager.job_report', $config['job_report_manager']); $container->setParameter($this->getAlias() . '.model.job_configuration.class', $config['class']['model']['job_configuration']); $container->setParameter($this->getAlias() . '.model.job_report.class', $config['class']['model']['job_report']); $container->setParameter($this->getAlias() . '.queues', $config['queues']); $container->setParameter($this->getAlias() . '.reset.timeout', $config['reset']['timeout']); }
/** * {@inheritdoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $managerService = 'velikan_tube_crawler.entity_manager'; $doctrineService = 'doctrine'; $container->setParameter('velikan_tube_crawler.model_manager_name', $config['model_manager_name']); switch ($config['db_driver']) { case 'orm': $container->setParameter('velikan_tube_crawler.backend_type_orm', true); break; case 'mongodb': $container->setParameter('velikan_tube_crawler.backend_type_mongodb', true); $managerService = 'velikan_tube_crawler.document_manager'; $doctrineService = 'doctrine_mongodb'; break; } $loader->load(sprintf('%s.xml', $config['db_driver'])); $definition = $container->getDefinition($managerService); $definition->setFactory([new Reference($doctrineService), 'getManager']); $container->setAlias('velikan_tube_crawler.tube_manager', $config['service']['tube_manager']); $container->setAlias('velikan_tube_crawler.video_manager', $config['service']['video_manager']); $this->setClassParameters($config, $container, ['tube_class' => 'velikan_tube_crawler.model.tube.class', 'video_class' => 'velikan_tube_crawler.model.video.class']); $loader->load('services.xml'); }
/** * {@inheritDoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.xml'); $loader->load('services_admin.xml'); if ($config['rest']['search_activities'] == true) { $loader->load('services_search_activities_rest.xml'); } $container->setParameter('mailgun.key', $config['key']); $container->setParameter('mailgun.domain', $config['domain']); $container->setParameter('redking_mail.default_from', $config['default_from']); $container->setParameter('redking_mail.auto_record_emails', $config['auto_record_emails']); $definitionDecorator = new DefinitionDecorator('swiftmailer.transport.eventdispatcher.abstract'); $container->setDefinition('mailgun.swift_transport.eventdispatcher', $definitionDecorator); $container->getDefinition('mailgun.swift_transport.transport')->replaceArgument(0, new Reference('mailgun.swift_transport.eventdispatcher')); //set some alias $container->setAlias('mailgun', 'mailgun.swift_transport.transport'); $container->setAlias('swiftmailer.mailer.transport.mailgun', 'mailgun.swift_transport.transport'); $container->setAlias('swiftmailer.mailer.default.transport', 'swiftmailer.mailer.transport.mailgun'); $delivery_enabled = true; try { $delivery_enabled = $container->getParameter('swiftmailer.mailer.default.delivery.enabled'); } catch (InvalidArgumentException $e) { } $container->setParameter('redking_mail.delivery_enabled', $delivery_enabled); }
public function test_accessing_service_by_alias() { $this->containerBuilder->register('service', new SymfonyDefinition(\stdClass::class)); $this->containerBuilder->setAlias('service_alias', 'service'); $this->assertTrue($this->serviceContainer->definitionExists('service_alias')); $this->assertSame(\stdClass::class, $this->serviceContainer->definitionClass('service_alias')); }
/** * {@inheritDoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.yml'); // $container->setAlias('teckhouse_analytics.document_manager', $config['service']['document_manager']); $container->setAlias('teckhouse_analytics.collection_manager', $config['service']['collection_manager']); $container->setAlias('teckhouse_analytics.widget_manager', $config['service']['widget_manager']); // $menuDefinition = $container->getDefinition( // 'teckhouse_analytics.menu_builder' // ); $wdigetManagerDefinition = $container->getDefinition('teckhouse_analytics.widget_manager.default'); foreach ($config['widgets'] as $key => $widget) { $widgetTypes = $container->getParameter('teckhouse_analytics.widget.types'); if (!isset($widgetTypes[$widget['type']])) { throw new \Exception("Widget type not allowed"); } $collections = array(); foreach ($widget['collections'] as $collectionName => $value) { $collections[] = $collectionName; } // Register Widget $wdigetManagerDefinition->addMethodCall('setWidget', array($key, $widget['label'], $widget['type'], $collections)); // // Register Menu call // $menuDefinition->addMethodCall('addMenuWidgetItem', array($key, $widget["label"])); } // $widgetManager = $container->get('teckhouse_analytics.widget_manager'); // foreach($config['widget'] as $key => $widget ){ // $class = $container->get("teckhouse_analytics.widget.".$widget['type']); // print_r($class); die; // $widgetManager->setWidget($key); // } }
/** * {@inheritdoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.yml'); foreach ($config['connections'] as $name => $values) { $def = new Definition(); $def->setClass($container->getParameter('agentsib_sphinx.connection.class')); $params = array('host' => $values['host'], 'port' => $values['port']); if ($values['socket']) { $params['socket'] = $values['socket']; } $def->setArguments(array($name, $values['driver'], $params)); $def->addMethodCall('addLogger', array(new Reference('agentsib_sphinx.logger'))); $container->setDefinition(sprintf('agentsib_sphinx.%s.connection', $name), $def); $helperDef = new DefinitionDecorator('agentsib_sphinx.factory.helper'); $helperDef->setFactoryClass($container->getParameter('agentsib_sphinx.helper.class')); $helperDef->setFactoryMethod('create'); $helperDef->addArgument(new Reference(sprintf('agentsib_sphinx.%s.connection', $name))); $helperDef->setPublic(true); $container->setDefinition(sprintf('agentsib_sphinx.%s.helper', $name), $helperDef); if ($name == $config['default_connection']) { $container->setAlias('agentsib_sphinx.connection', sprintf('agentsib_sphinx.%s.connection', $name)); $container->setAlias('agentsib_sphinx.helper', sprintf('agentsib_sphinx.%s.helper', $name)); } } }
/** * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException */ public function testAliasCircularReference() { $container = new ContainerBuilder(); $container->setAlias('bar', 'foo'); $container->setAlias('foo', 'bar'); $this->process($container); }
/** * {@inheritdoc} */ public function build($user) { $dataTransformer = class_exists($this->dataTransformer) ? new Definition($this->dataTransformer) : new Reference($this->dataTransformer); $this->container->setDefinition('bengor.user.application.data_transformer.' . $user . '_dto', $dataTransformer)->setPublic(false); $this->container->setAlias('bengor_user.' . $user . '.dto_data_transformer', 'bengor.user.application.data_transformer.' . $user . '_dto'); return $this->container; }
/** * Loads the Swift Mailer configuration. * * Usage example: * * <swiftmailer:config transport="gmail"> * <swiftmailer:username>fabien</swift:username> * <swiftmailer:password>xxxxx</swift:password> * <swiftmailer:spool path="/path/to/spool/" /> * </swiftmailer:config> * * @param array $config An array of configuration settings * @param ContainerBuilder $container A ContainerBuilder instance */ public function configLoad(array $config, ContainerBuilder $container) { if (!$container->hasDefinition('swiftmailer.mailer')) { $loader = new XmlFileLoader($container, __DIR__ . '/../Resources/config'); $loader->load('swiftmailer.xml'); $container->setAlias('mailer', 'swiftmailer.mailer'); } $r = new \ReflectionClass('Swift_Message'); $container->setParameter('swiftmailer.base_dir', dirname(dirname(dirname($r->getFilename())))); $transport = $container->getParameter('swiftmailer.transport.name'); if (array_key_exists('transport', $config)) { if (null === $config['transport']) { $transport = 'null'; } elseif ('gmail' === $config['transport']) { $config['encryption'] = 'ssl'; $config['auth_mode'] = 'login'; $config['host'] = 'smtp.gmail.com'; $transport = 'smtp'; } else { $transport = $config['transport']; } $container->setParameter('swiftmailer.transport.name', $transport); } $container->setAlias('swiftmailer.transport', 'swiftmailer.transport.' . $transport); if (isset($config['encryption']) && 'ssl' === $config['encryption'] && !isset($config['port'])) { $config['port'] = 465; } foreach (array('encryption', 'port', 'host', 'username', 'password', 'auth_mode') as $key) { if (isset($config[$key])) { $container->setParameter('swiftmailer.transport.' . $transport . '.' . $key, $config[$key]); } } // spool? if (isset($config['spool'])) { $type = isset($config['spool']['type']) ? $config['spool']['type'] : 'file'; $container->setAlias('swiftmailer.transport.real', 'swiftmailer.transport.' . $transport); $container->setAlias('swiftmailer.transport', 'swiftmailer.transport.spool'); $container->setAlias('swiftmailer.spool', 'swiftmailer.spool.' . $type); foreach (array('path') as $key) { if (isset($config['spool'][$key])) { $container->setParameter('swiftmailer.spool.' . $type . '.' . $key, $config['spool'][$key]); } } } if (array_key_exists('delivery-address', $config)) { $config['delivery_address'] = $config['delivery-address']; } if (isset($config['delivery_address']) && $config['delivery_address']) { $container->setParameter('swiftmailer.single_address', $config['delivery_address']); $container->findDefinition('swiftmailer.transport')->addMethodCall('registerPlugin', array(new Reference('swiftmailer.plugin.redirecting'))); } else { $container->setParameter('swiftmailer.single_address', null); } if (array_key_exists('disable-delivery', $config)) { $config['disable_delivery'] = $config['disable-delivery']; } if (isset($config['disable_delivery']) && $config['disable_delivery']) { $container->findDefinition('swiftmailer.transport')->addMethodCall('registerPlugin', array(new Reference('swiftmailer.plugin.blackhole'))); } }
/** * {@inheritDoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('controllers.xml'); $loader->load('form/gallery.xml'); $loader->load('form/image.xml'); $loader->load('image/config-validator.xml'); $loader->load('image/services.xml'); $loader->load('services.xml'); $loader->load('templating.xml'); $loader->load('token.xml'); if (!in_array(strtolower($config['db_driver']), array('mongodb', 'orm'))) { throw new \InvalidArgumentException(sprintf('Invalid db driver "%s".', $config['db_driver'])); } $loader->load('db_driver/' . sprintf('%s.xml', $config['db_driver'])); $container->setAlias($this->getAlias() . '.manager.image', $config['image_manager']); $container->setAlias($this->getAlias() . '.image.cropper', $config['image']['cropper']); $container->setAlias($this->getAlias() . '.image.resizer', $config['image']['resizer']); $container->setParameter($this->getAlias() . '.model.image.class', $config['class']['model']['image']); $container->setParameter($this->getAlias() . '.token.key', $config['token']['key']); $container->setParameter($this->getAlias() . '.no_image', $config['image']['no_image']); $container->setParameter($this->getAlias() . '.resizer_background_color', $config['image']['resizer_background_color']); $container->setParameter($this->getAlias() . '.resizer_background_color_alpha', $config['image']['resizer_background_color_alpha']); if ($rootDir = $config['filesystem']['root_dir']) { $this->setFilesystemRootDir($rootDir, $container); } $this->setImageConfigs($config['image'], $container); }
/** * Load configuration. */ public function load(array $configs, ContainerBuilder $container) { $processor = new Processor(); $configuration = new Configuration(); $config = $processor->processConfiguration($configuration, $configs); $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.xml'); $loader->load('controllers.xml'); if (isset($config['serializer'])) { $container->setAlias('fos_js_routing.serializer', new Alias($config['serializer'], false)); } else { $loader->load('serializer.xml'); } $container->setAlias('fos_js_routing.router', new Alias($config['router'], false)); $container->getDefinition('fos_js_routing.extractor')->replaceArgument(1, $config['routes_to_expose']); if (isset($config['request_context_base_url'])) { $container->setParameter('fos_js_routing.request_context_base_url', $config['request_context_base_url']); } if (isset($config['cache_control'])) { $config['cache_control']['enabled'] = true; } else { $config['cache_control'] = array('enabled' => false); } $container->setParameter('fos_js_routing.cache_control', $config['cache_control']); }
public function process(ContainerBuilder $container) { if (false === $container->hasDefinition('twig')) { return; } // register additional template loaders $loaderIds = $container->findTaggedServiceIds('twig.loader'); if (count($loaderIds) === 0) { throw new LogicException('No twig loaders found. You need to tag at least one loader with "twig.loader"'); } if (count($loaderIds) === 1) { $container->setAlias('twig.loader', key($loaderIds)); } else { $chainLoader = $container->getDefinition('twig.loader.chain'); $prioritizedLoaders = array(); foreach ($loaderIds as $id => $tags) { foreach ($tags as $tag) { $priority = isset($tag['priority']) ? $tag['priority'] : 0; $prioritizedLoaders[$priority][] = $id; } } krsort($prioritizedLoaders); foreach ($prioritizedLoaders as $loaders) { foreach ($loaders as $loader) { $chainLoader->addMethodCall('addLoader', array(new Reference($loader))); } } $container->setAlias('twig.loader', 'twig.loader.chain'); } }
/** * @param array $configs * @param ContainerBuilder $container */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $this->copyValuesFromParentToProject('locales', $config); $this->copyValuesFromParentToProject('domains', $config); $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.yml'); if ($config['auto_add_assets']) { $loader->load('autoAdd.yml'); } $container->setParameter('translation.toolbar.allow_edit', $config['allow_edit']); /* * Set an alias for the adapter */ $adapter = $config['http_adapter']; if ($adapter === 'guzzle5' || $adapter === 'guzzle6') { //Use one of our adapters $adapter = 'happyr.translation.http_adapter.' . $adapter; } $container->setAlias('happyr.translation.http_adapter', $adapter); $targetDir = rtrim($config['target_dir'], '/'); $container->findDefinition('happyr.translation.filesystem')->replaceArgument(2, $targetDir); /* * Set alias for the translation service */ $container->setAlias('happyr.translation', 'happyr.translation.service.' . $config['translation_service']); $container->findDefinition('happyr.translation.service.loco')->replaceArgument(2, $config['projects'])->replaceArgument(3, $targetDir); }
/** * {@inheritDoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration($container->getParameter('kernel.debug')); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); if (true === $container->getParameter('kernel.debug')) { $loader->load('logger.xml'); } if (isset($config['connections'])) { if (!isset($config['default_connection'])) { $keys = array_keys($config['connections']); $config['default_connection'] = reset($keys); } $loader->load('connection.xml'); foreach ($config['connections'] as $name => $connection) { $arguments = array_merge(array($name), array_values($connection)); $logger = new Reference('mop_arangodb.data_collector'); if (true === $container->getParameter('kernel.debug')) { $container->getDefinition('mop_arangodb.connection_factory')->addMethodCall('addLogger', array($logger)); } $container->setDefinition('mop_arangodb.connections.' . $name, new DefinitionDecorator('mop_arangodb.connection'))->setArguments($arguments); } } if ($config['default_connection']) { $container->setAlias('mop_arangodb.default_connection', 'mop_arangodb.connections.' . $config['default_connection']); } if (isset($config['fos'])) { $container->setParameter('mop_arangodb.fos.collection', $config['fos']['collection']); $container->setAlias('mop_arangodb.fos.connection', 'mop_arangodb.connections.' . $config['fos']['connection']); $loader->load('fos.xml'); } }
/** * {@inheritdoc} */ public function process(ContainerBuilder $container) { $analysis = $container->getParameter('es.analysis'); $connections = $container->getParameter('es.connections'); $managers = $container->getParameter('es.managers'); $collector = $container->get('es.metadata_collector'); foreach ($managers as $managerName => $manager) { if (!isset($connections[$manager['connection']])) { throw new InvalidConfigurationException('There is no ES connection with the name: ' . $manager['connection']); } $managerName = strtolower($managerName); $connection = $connections[$manager['connection']]; $managerDefinition = new Definition($container->getParameter('es.manager.class'), [$managerName, $connection, $analysis, $manager]); $managerDefinition->setFactory([new Reference('es.manager_factory'), 'createManager']); $container->setDefinition(sprintf('es.manager.%s', $managerName), $managerDefinition); // Make es.manager.default as es.manager service. if ($managerName === 'default') { $container->setAlias('es.manager', 'es.manager.default'); } $mappings = $collector->getMappings($manager['mappings']); // Building repository services. foreach ($mappings as $repositoryType => $repositoryDetails) { $repositoryDefinition = new Definition($container->getParameter('es.repository.class'), [$repositoryDetails['bundle'] . ':' . $repositoryDetails['class']]); $repositoryDefinition->setFactory([new Reference(sprintf('es.manager.%s', $managerName)), 'getRepository']); $repositoryId = sprintf('es.manager.%s.%s', $managerName, $repositoryType); if (strtolower(substr($repositoryType, -8)) === 'document') { $container->setAlias(sprintf('es.manager.%s.%s', $managerName, substr($repositoryType, 0, strlen($repositoryType) - 8)), $repositoryId); } $container->setDefinition($repositoryId, $repositoryDefinition); } } }
/** * Load balancer service * * @param array $config * @param ContainerBuilder $container */ protected function loadBalancer(array $config, ContainerBuilder $container) { $container->register('meup_geo_location.balancer.random_strategy', 'Meup\\Bundle\\GeoLocationBundle\\Domain\\BalancingStrategy\\RandomStrategy'); $container->setAlias('meup_geo_location.balancer.strategy', $config['balancer']['strategy']); $container->register('meup_geo_location.balancer_factory.default', 'Meup\\Bundle\\GeoLocationBundle\\Domain\\BalancerFactory')->addArgument('Meup\\Bundle\\GeoLocationBundle\\Domain\\Balancer')->addArgument(new Reference('meup_geo_location.balancer.strategy')); $container->setAlias('meup_geo_location.balancer_factory', $config['balancer']['factory']); }