/**
  * Registers form resources for CKFinder form field types.
  *
  * @param ContainerBuilder $container
  */
 protected function registerFormThemes(ContainerBuilder $container)
 {
     $templatingEngines = $container->getParameter('templating.engines');
     if (in_array('twig', $templatingEngines)) {
         $container->setParameter('twig.form.resources', array_merge(array('CKSourceCKFinderBundle:Form:fields.html.twig'), $container->getParameter('twig.form.resources')));
     }
 }
 /**
  * {@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');
     $container->setParameter('eo_airbrake.api_key', $config['api_key']);
     $container->setParameter('eo_airbrake.async', $config['async']);
     $container->setParameter('eo_airbrake.host', $config['host']);
     $container->setParameter('eo_airbrake.secure', $config['secure']);
     // Exception Listener
     if ($config['api_key']) {
         // Airbreak Configuration
         $class = $container->getParameter('eo_airbrake.configuration.class');
         $definition = new Definition($class, array($config['api_key'], $config['async'], $container->getParameter('kernel.environment'), $config['host'], $config['secure']));
         $container->setDefinition('eo_airbrake.configuration', $definition);
         // Airbreak Client
         $class = $container->getParameter('eo_airbrake.client.class');
         $definition = new Definition($class, array(new Reference('eo_airbrake.configuration')));
         $container->setDefinition('eo_airbrake.client', $definition);
         // Exception Listener
         $class = $container->getParameter('eo_airbrake.exception_listener.class');
         $definition = new Definition($class, array(new Reference('eo_airbrake.client'), $config['ignored_exceptions']));
         $definition->addTag('kernel.event_listener', array('event' => 'kernel.exception', 'method' => 'onKernelException'));
         $container->setDefinition('php_airbrake.exception_listener', $definition);
         // PHP Shutdown Listener
         $class = $container->getParameter('eo_airbrake.shutdown_listener.class');
         $definition = new Definition($class, array(new Reference('eo_airbrake.client')));
         $definition->addTag('kernel.event_listener', array('event' => 'kernel.controller', 'method' => 'register'));
         $container->setDefinition('php_airbrake.shutdown_listener', $definition);
     }
 }
 public function process(ContainerBuilder $container)
 {
     $issuer = $container->getParameter('jwt_iss');
     $definition = $container->getDefinition('oauth2.server');
     $args = $definition->getArguments();
     $args['oauth2.server.storage'][] = new Reference('oauth2.storage.user_claims');
     $args['oauth2.server.storage'][] = new Reference('oauth2.storage.public_key');
     $args['oauth2.server.grant_types'] = array();
     $args['oauth2.server.response_types'] = array('token' => new Reference('oauth2.response_types.token'), 'code' => new Reference('oauth2.response_types.code'), 'id_token' => new Reference('oauth2.response_types.id_token'), 'id_token token' => new Reference('oauth2.response_types.id_token_token'), 'code id_token' => new Reference('oauth2.response_types.code_id_token'));
     $definition->setArguments($args);
     if ($container->hasDefinition('gaufrette.jwks_fs_filesystem')) {
         $filesystem = new Reference('gaufrette.jwks_fs_filesystem');
         $fileName = $container->getParameter('jwks_private_key_file');
         $container->getDefinition('oauth2.storage.public_key')->addMethodCall('setFilesystem', array($filesystem, $fileName));
     }
     if ($container->hasDefinition('oauth2.grant_type.authorization_code')) {
         $sessionState = new Reference('oidc.storage.session_state');
         $container->getDefinition('oauth2.grant_type.authorization_code')->addMethodCall('setSessionStateStorage', array($sessionState));
     }
     if ($container->hasDefinition('oauth2.storage.authorization_code')) {
         $sessionState = new Reference('oidc.storage.session_state');
         $container->getDefinition('oauth2.storage.authorization_code')->addMethodCall('setSessionStateStorage', array($sessionState));
     }
     if ($container->hasDefinition('oauth2.scope_manager')) {
         $scopes = $container->getParameter('lc_supported_scopes');
         $container->getDefinition('oauth2.scope_manager')->addMethodCall('setScopes', array($scopes));
     }
     if ($container->hasDefinition('oauth2.storage.access_token')) {
         $secret = $container->getParameter('secret');
         $container->getDefinition('oauth2.storage.access_token')->addMethodCall('setPairwiseSubjectIdSalt', array($secret));
     }
 }
Пример #4
0
Файл: Kernel.php Проект: eva/eva
 /**
  * {@inheritdoc}
  */
 public function handle()
 {
     $manifests = $this->container->getParameter('eva.directory.eva.manifests');
     require_once $manifests . '/vendor/autoload.php';
     $local = $this->container->get('eva.plug.finder.local');
     $local->find();
 }
 protected function registerResources(ContainerBuilder $container)
 {
     $templatingEngines = $container->getParameter('templating.engines');
     if (in_array('twig', $templatingEngines)) {
         $container->setParameter('twig.form.resources', array_merge(array('FenrizbesFormConstructorBundle:Form:fields.html.twig'), $container->getParameter('twig.form.resources')));
     }
 }
 public function prepend(ContainerBuilder $container)
 {
     $knpMenuConfig['twig'] = true;
     // set to false to disable the Twig extension and the TwigRenderer
     $knpMenuConfig['templating'] = false;
     // if true, enables the helper for PHP templates
     $knpMenuConfig['default_renderer'] = 'twig';
     // The renderer to use, list is also available by default
     $container->prependExtensionConfig('knp_menu', $knpMenuConfig);
     $fosUserConfig['db_driver'] = 'orm';
     // other valid values are 'mongodb', 'couchdb'
     $fosUserConfig['firewall_name'] = 'main';
     $fosUserConfig['user_class'] = 'Kunstmaan\\AdminBundle\\Entity\\User';
     $fosUserConfig['group']['group_class'] = 'Kunstmaan\\AdminBundle\\Entity\\Group';
     $fosUserConfig['resetting']['token_ttl'] = 86400;
     // Use this node only if you don't want the global email address for the resetting email
     $fosUserConfig['resetting']['email']['from_email']['address'] = '*****@*****.**';
     $fosUserConfig['resetting']['email']['from_email']['sender_name'] = 'admin';
     $fosUserConfig['resetting']['email']['template'] = 'FOSUserBundle:Resetting:email.txt.twig';
     $fosUserConfig['resetting']['form']['type'] = 'fos_user_resetting';
     $fosUserConfig['resetting']['form']['name'] = 'fos_user_resetting_form';
     $fosUserConfig['resetting']['form']['validation_groups'] = ['ResetPassword'];
     $container->prependExtensionConfig('fos_user', $fosUserConfig);
     $monologConfig['handlers']['main']['type'] = 'rotating_file';
     $monologConfig['handlers']['main']['path'] = sprintf('%s/%s', $container->getParameter('kernel.logs_dir'), $container->getParameter('kernel.environment'));
     $monologConfig['handlers']['main']['level'] = 'debug';
     $container->prependExtensionConfig('monolog', $monologConfig);
     $configs = $container->getExtensionConfig($this->getAlias());
     $this->processConfiguration(new Configuration(), $configs);
 }
 public function process(ContainerBuilder $container)
 {
     if (!$container->hasDefinition('sonata.notification.dispatcher')) {
         return;
     }
     $definition = $container->getDefinition('sonata.notification.dispatcher');
     $informations = array();
     foreach ($container->findTaggedServiceIds('sonata.notification.consumer') as $id => $events) {
         foreach ($events as $event) {
             $priority = isset($event['priority']) ? $event['priority'] : 0;
             if (!isset($event['type'])) {
                 throw new \InvalidArgumentException(sprintf('Service "%s" must define the "type" attribute on "sonata.notification" tags.', $id));
             }
             if (!isset($informations[$event['type']])) {
                 $informations[$event['type']] = array();
             }
             $informations[$event['type']][] = $id;
             $definition->addMethodCall('addListenerService', array($event['type'], array($id, 'process'), $priority));
         }
     }
     $container->getDefinition('sonata.notification.consumer.metadata')->replaceArgument(0, $informations);
     if ($container->getParameter('sonata.notification.event.iteration_listeners')) {
         $ids = $container->getParameter('sonata.notification.event.iteration_listeners');
         foreach ($ids as $serviceId) {
             $definition = $container->getDefinition($serviceId);
             $class = new \ReflectionClass($definition->getClass());
             if (!$class->implementsInterface('Sonata\\NotificationBundle\\Event\\IterationListener')) {
                 throw new RuntimeException('Iteration listeners must implement Sonata\\NotificationBundle\\Event\\IterationListener');
             }
             $definition->addTag('kernel.event_listener', array('event' => IterateEvent::EVENT_NAME, 'method' => 'iterate'));
         }
     }
 }
 /**
  * {@inheritDoc}
  */
 public function process(ContainerBuilder $container)
 {
     $isInstalled = $container->getParameter('installed');
     $configValue = $container->getParameter('oro_cron.jms_statistics');
     $statisticEnabled = $isInstalled ? $configValue : false;
     $container->setParameter('jms_job_queue.statistics', $statisticEnabled);
 }
Пример #9
0
 /**
  * {@inheritdoc}
  */
 public function process(ContainerBuilder $container)
 {
     if (!$container->hasDefinition($this->registryService) && !$container->hasAlias($this->registryService)) {
         return;
     }
     $customLogLevels = $container->getParameter('abc.job.logging.level');
     $registry = $container->findDefinition('abc.job.registry');
     foreach ($container->findTaggedServiceIds($this->jobTag) as $id => $tags) {
         $def = $container->getDefinition($id);
         if (!$def->isPublic()) {
             throw new \InvalidArgumentException(sprintf('The service "%s" must be public as jobs are lazy-loaded.', $id));
         }
         foreach ($tags as $tag) {
             if (!isset($tag['type'])) {
                 throw new \InvalidArgumentException(sprintf('Service "%s" must define the "type" attribute on "%s" tags.', $id, $this->jobTag));
             }
             if (!isset($tag['method'])) {
                 throw new \InvalidArgumentException(sprintf('Service "%s" must define the "method" attribute on "%s" tags.', $id, $this->jobTag));
             }
             $logLevel = isset($customLogLevels[$tag['type']]) ? $this->levelToMonologConst($customLogLevels[$tag['type']]) : null;
             $jobTypeId = 'abc.job.type.' . $tag['type'];
             $definition = $this->createType($id, $tag['type'], array(new Reference($id), $tag['method']), $logLevel);
             $container->setDefinition($jobTypeId, $definition);
             $registry->addMethodCall('register', array(new Reference($jobTypeId), true));
         }
     }
     // there as a reason this listener was registered here, what was it?
     if ($container->hasParameter('abc.job.adapter') && $container->getParameter('abc.job.adapter') == 'sonata') {
         $pass = new RegisterSonataListenersPass();
         $pass->process($container);
     }
 }
Пример #10
0
 public function process(ContainerBuilder $container)
 {
     $clearSpoolsId = 'long_running.swift_mailer.clear_spools';
     if (!$container->has($clearSpoolsId)) {
         return;
     }
     if (!$container->hasAlias('swiftmailer.mailer') || $container->getParameter('swiftmailer.mailers') === []) {
         return;
     }
     $spoolServiceReferences = [];
     $realTransportServiceReferences = [];
     $mailers = $container->getParameter('swiftmailer.mailers');
     foreach ($mailers as $name => $mailer) {
         if ($container->getParameter(sprintf('swiftmailer.mailer.%s.spool.enabled', $name))) {
             $transport = sprintf('swiftmailer.mailer.%s.transport', $name);
             $transportDefinition = $container->findDefinition($transport);
             if (is_a($transportDefinition->getClass(), 'Swift_Transport_SpoolTransport', true)) {
                 $spool = sprintf('swiftmailer.mailer.%s.spool', $name);
                 $spoolDefinition = $container->findDefinition($spool);
                 if (is_a($spoolDefinition->getClass(), 'Swift_MemorySpool', true)) {
                     $realTransport = sprintf('swiftmailer.mailer.%s.transport.real', $name);
                     $spoolServiceReferences[$name] = new Reference($spool);
                     $realTransportServiceReferences[$name] = new Reference($realTransport);
                 }
             }
         }
     }
     $definition = $container->getDefinition($clearSpoolsId);
     $definition->replaceArgument(0, $spoolServiceReferences);
     $definition->replaceArgument(1, $realTransportServiceReferences);
 }
 /**
  * @inheritdoc
  */
 public function process(ContainerBuilder $container)
 {
     if (!$container->hasDefinition('qimnet.crud.configuration.repository')) {
         return;
     }
     $repository = $container->getDefinition('qimnet.crud.configuration.repository');
     $defaults = $container->getParameter('qimnet.crud.defaults');
     foreach ($container->getParameter('qimnet.crud.services') as $name => $configuration) {
         $options = $configuration['options'] + array('name' => $name) + $defaults['options'];
         $configuration = $configuration + $defaults;
         $serviceId = 'qimnet.crud.configuration.' . strtolower($name);
         $definition = new DefinitionDecorator('qimnet.crud.configuration');
         foreach (array('object_manager_factory', 'security_context_factory', 'path_generator_factory') as $index => $key) {
             if ($configuration[$key]) {
                 $definition->replaceArgument($index, new Reference($configuration[$key]));
             }
         }
         $definition->addArgument($options);
         if ($configuration['class']) {
             $definition->setClass($configuration['class']);
         }
         $definition->addTag('qimnet.crud.configuration', array('alias' => $name, 'object_class' => $options['object_class'], 'worker' => $configuration['worker'], 'redirection_manager' => $configuration['redirection_manager']));
         $container->setDefinition($serviceId, $definition);
     }
     $taggedServices = $container->findTaggedServiceIds('qimnet.crud.configuration');
     foreach ($taggedServices as $id => $attributes) {
         $repository->addMethodCall('add', array($attributes[0]['alias'], $attributes[0]['object_class'], $id, $attributes[0]['worker'], $attributes[0]['redirection_manager']));
     }
 }
 /**
  * {@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');
     }
 }
Пример #13
0
 /**
  * You can modify the container here before it is dumped to PHP code.
  *
  * @param ContainerBuilder $container
  *
  * @api
  */
 public function process(ContainerBuilder $container)
 {
     try {
         $chainRouter = $container->getDefinition("router.chainRequest");
     } catch (InvalidArgumentException $e) {
         return;
     }
     foreach ($container->findTaggedServiceIds("router.register") as $id => $attributes) {
         $priority = isset($attributes[0]["priority"]) ? $attributes[0]["priority"] : 0;
         $router = $container->getDefinition($id);
         $router->addMethodCall("setOption", array("matcher_cache_class", $container::camelize("ProjectUrlMatcher" . $id)));
         $router->addMethodCall("setOption", array("generator_cache_class", $container::camelize("ProjectUrlGenerator" . $id)));
         $chainRouter->addMethodCall("add", array(new Reference($id), $priority));
     }
     if (defined("THELIA_INSTALL_MODE") === false) {
         $modules = \Thelia\Model\ModuleQuery::getActivated();
         foreach ($modules as $module) {
             $moduleBaseDir = $module->getBaseDir();
             $routingConfigFilePath = $module->getAbsoluteBaseDir() . DS . "Config" . DS . "routing.xml";
             if (file_exists($routingConfigFilePath)) {
                 $definition = new Definition($container->getParameter("router.class"), array(new Reference("router.module.xmlLoader"), $routingConfigFilePath, array("cache_dir" => $container->getParameter("kernel.cache_dir"), "debug" => $container->getParameter("kernel.debug"), "matcher_cache_class" => $container::camelize("ProjectUrlMatcher" . $moduleBaseDir), "generator_cache_class" => $container::camelize("ProjectUrlGenerator" . $moduleBaseDir)), new Reference("request.context")));
                 $container->setDefinition("router." . $moduleBaseDir, $definition);
                 $chainRouter->addMethodCall("add", array(new Reference("router." . $moduleBaseDir), 150));
             }
         }
     }
 }
Пример #14
0
 /**
  * {@inheritDoc}
  */
 public function process(ContainerBuilder $container)
 {
     if (!$container->hasParameter('fos_user.storage')) {
         return;
     }
     $storage = $container->getParameter('fos_user.storage');
     if ('custom' === $storage) {
         return;
     }
     $validationFile = __DIR__ . '/../../Resources/config/validation/' . $storage . '.xml';
     if ($container->hasDefinition('validator.builder')) {
         // Symfony 2.5+
         $container->getDefinition('validator.builder')->addMethodCall('addXmlMapping', array($validationFile));
         return;
     }
     // Old method of loading validation
     if (!$container->hasParameter('validator.mapping.loader.xml_files_loader.mapping_files')) {
         return;
     }
     $files = $container->getParameter('validator.mapping.loader.xml_files_loader.mapping_files');
     if (is_file($validationFile)) {
         $files[] = realpath($validationFile);
         $container->addResource(new FileResource($validationFile));
     }
     $container->setParameter('validator.mapping.loader.xml_files_loader.mapping_files', $files);
 }
Пример #15
0
 /**
  * {@inheritdoc}
  */
 public function process(ContainerBuilder $container)
 {
     // add inference types
     $inferenceTypeContainer = $container->getDefinition('rezzza.ruler.inference_type_container');
     foreach ($container->findTaggedServiceIds('rezzza.ruler.inference_type') as $id => $tagAttributes) {
         $inferenceTypeContainer->addMethodCall('add', array(new Reference($id)));
     }
     // add events
     $eventDatas = $container->getParameter('rezzza.ruler.events');
     $eventContainer = $container->getDefinition('rezzza.ruler.event.container');
     $events = array();
     foreach ($eventDatas as $key => $data) {
         $event = new Definition('Rezzza\\RulerBundle\\Ruler\\Event\\Event', array($key, $data['label'], $data['context_builder']));
         $events[$key] = $event;
         $eventContainer->addMethodCall('add', array($event));
     }
     // add inferences
     $inferenceDatas = $container->getParameter('rezzza.ruler.inferences');
     $inferenceContainer = $container->getDefinition('rezzza.ruler.inference_container');
     foreach ($inferenceDatas as $key => $data) {
         $inference = new Definition('Rezzza\\RulerBundle\\Ruler\\Inference\\Inference', array($key, $data['type'], $data['description'], $data['event']));
         foreach ($data['event'] as $event) {
             if (!isset($events[$event])) {
                 throw new \LogicException(sprintf('Event "%s" is not defined', $event));
             }
             $events[$event]->addMethodCall('addInference', array($inference));
         }
         $inferenceContainer->addMethodCall('add', array($inference));
     }
     /* --- functions --- */
     $rulerDefinition = $container->getDefinition('rezzza.ruler');
     foreach ($container->findTaggedServiceIds('rezzza.ruler.functions') as $id => $tagAttributes) {
         $rulerDefinition->addMethodCall('addFunctionCollection', array(new Reference($id)));
     }
 }
Пример #16
0
 public function process(ContainerBuilder $container)
 {
     // log
     $definition = $container->findDefinition('csa_guzzle.subscriber.log');
     $logServiceId = $container->getParameter('csa_guzzle.subscriber.log.service');
     if ($container->hasDefinition($logServiceId)) {
         $definition->replaceArgument(0, new Reference($logServiceId));
     }
     $channel = $container->getParameter('csa_guzzle.subscriber.log.channel');
     if (!empty($channel)) {
         $definition->clearTag('monolog.logger');
         $definition->addTag('monolog.logger', array('channel' => $channel));
     }
     // Cache
     $cacheServiceId = $container->getParameter('csa_guzzle.subscriber.cache.service');
     if ($container->hasDefinition($cacheServiceId)) {
         $container->setDefinition('csa_guzzle.cache_storage', new Definition('%csa_guzzle.cache_storage.class%', array(new Reference($cacheServiceId), $container->getParameter('csa_guzzle.subscriber.cache.prefix'))));
         $cacheSubscriber = new Definition('%csa_guzzle.subscriber.cache.class%', array(new Reference('csa_guzzle.cache_storage'), $container->getParameter('csa_guzzle.subscriber.cache.enable')));
         $cacheSubscriber->addTag('csa_guzzle.subscriber');
         $container->setDefinition('csa_guzzle.subscriber.cache', $cacheSubscriber);
     }
     // get all Guzzle subscribers
     $subscribers = $container->findTaggedServiceIds('csa_guzzle.subscriber');
     if (!count($subscribers)) {
         return;
     }
     // Factory
     $factory = $container->findDefinition('csa_guzzle.client_factory');
     $arg = [];
     foreach ($subscribers as $subscriber => $options) {
         $arg[] = new Reference($subscriber);
     }
     $factory->replaceArgument(1, $arg);
 }
 /**
  * Merge app conf with bundle conf
  *
  * @param ContainerBuilder $container
  */
 protected function addMediaFieldType(ContainerBuilder $container)
 {
     $fieldTypes = array_merge($container->getParameter('open_orchestra_backoffice.field_types'), array('orchestra_media' => array('label' => 'open_orchestra_media_admin.form.field_type.custom_type.media', 'type' => 'oo_media_choice', 'deserialize_type' => 'array', 'search' => 'text', 'default_value' => array('type' => 'oo_media_choice', 'options' => array('label' => 'open_orchestra_backoffice.form.field_type.default_value', 'required' => false)), 'options' => array('required' => array('default_value' => false), 'filter' => array('default_value' => '')))));
     $container->setParameter('open_orchestra_backoffice.field_types', $fieldTypes);
     $options = array_merge($container->getParameter('open_orchestra_backoffice.options'), array('filter' => array('type' => 'choice', 'label' => 'open_orchestra_media_admin.form.field_type.field_option.filter', 'required' => false, 'choices' => array('' => 'open_orchestra_media_admin.media_filter.none', 'default' => 'open_orchestra_media_admin.media_filter.default', 'image' => 'open_orchestra_media_admin.media_filter.image', 'audio' => 'open_orchestra_media_admin.media_filter.audio', 'video' => 'open_orchestra_media_admin.media_filter.video', 'pdf' => 'open_orchestra_media_admin.media_filter.pdf'))));
     $container->setParameter('open_orchestra_backoffice.options', $options);
 }
 /**
  * Verifies that we can load an optional resource.
  */
 public function testLoadOptional()
 {
     file_put_contents($this->dir . '/test.yml.dist', Yaml::dump(array('parameters' => array('test' => 'value'))));
     self::assertFalse($this->loader->loadOptional(new ResourceCollection(array(new Resource('test.yml')))));
     self::assertTrue($this->loader->loadOptional(new ResourceCollection(array(new ResourceSupport('test.yml.dist', 'test.yml')))));
     self::assertEquals('value', $this->container->getParameter('test'));
 }
 /**
  * {@inheritdoc}
  */
 public function process(ContainerBuilder $container)
 {
     if (false === $container->hasDefinition('sculpin.custom_mime_types_repository')) {
         return;
     }
     $definition = $container->getDefinition('sculpin.custom_mime_types_repository');
     $data = array();
     foreach ($container->findTaggedServiceIds('sculpin.custom_mime_extensions') as $tagAttributes) {
         foreach ($tagAttributes as $attributes) {
             $type = $attributes['type'];
             $parameter = $attributes['parameter'];
             if ($container->hasParameter($parameter)) {
                 if (isset($data[$type])) {
                     $data[$type] = array_unique(array_merge($container->getParameter($type), $container->getParameter($parameter)));
                 } else {
                     $data[$type] = array_unique($container->getParameter($parameter));
                 }
             }
         }
     }
     foreach ($data as $type => $extensions) {
         $data[$type] = array_filter($extensions, function ($var) {
             return strlen($var) > 0;
         });
     }
     $definition->addArgument($data);
 }
Пример #20
0
 /**
  * @param array            $configs
  * @param ContainerBuilder $container
  */
 private function registerPagers(array $configs, ContainerBuilder $container)
 {
     $shouldDisableRedirector = true;
     foreach ($configs as $name => $config) {
         $serviceId = sprintf("%s.%s", self::PREFIX_PAGER, $name);
         $definition = $container->register($serviceId, $container->getParameter('kg_pager.class'));
         // Sets the default items per page for the given pager.
         if (isset($config['per_page'])) {
             $definition->addArgument($config['per_page']);
         }
         // Changes the strategy, if this pager should merge last two pages
         // given the following threshold.
         if (isset($config['merge']) && $config['merge'] > 0) {
             $strategyDefinition = new Definition($container->getParameter('kg_pager.strategy.last_page_merged.class'));
             $strategyDefinition->addArgument($config['merge']);
             $definition->addArgument($strategyDefinition);
         }
         // Wraps the pager inside a request decorator to have it automatically
         // infer the current page from the request.
         if ($config['key']) {
             $definition = $container->register($serviceId, $container->getParameter('kg_pager.request_decorator.class'))->setArguments(array($definition, new Reference('request_stack'), $config['key']));
         }
         if ($config['redirect']) {
             $shouldDisableRedirector = false;
             $definition = $container->register($serviceId, $container->getParameter('kg_pager.bounds_check_decorator.class'))->setArguments(array($definition));
             if ($config['key']) {
                 $definition->addArgument($config['key']);
             }
         }
     }
     if ($shouldDisableRedirector) {
         $container->removeDefinition('kg_pager.out_of_bounds_redirector');
     }
 }
Пример #21
0
 /**
  * Updates a user.
  *
  * @param UserInterface $user
  * @param Boolean       $andFlush Whether to flush the changes (default true)
  */
 public function updateUser(UserInterface $user, $andFlush = true)
 {
     parent::updateUser($user, $andFlush);
     if ($this->container->getParameter('ephp_acl.access_log.enable')) {
         $accessClassName = $this->accessClass;
         try {
             $request = $this->container->get('request');
             //                \Ephp\UtilityBundle\Utility\Debug::vd($request);
             $check_ip = $this->container->getParameter('ephp_acl.access_log.check_ip');
             if ($check_ip) {
                 $_access = $this->objectManager->getRepository($accessClassName);
                 /* @var $_access Ephp\ACLBundle\Model\BaseAccessLogRepository */
                 $_access->checkIp($user, $request->server->get('REMOTE_ADDR'));
             }
             $access = new $accessClassName();
             /* @var $access \Ephp\ACLBundle\Model\BaseAccessLog */
             $access->setUser($user);
             /* @var $request \Symfony\Component\HttpFoundation\Request */
             $access->setIp($request->server->get('REMOTE_ADDR'));
             foreach ($request->cookies as $name => $cookie) {
                 $access->addCookie($name, $cookie);
             }
             $access->setLoggedAt(new \DateTime());
             $access->addNote('user_agent', $request->server->get('HTTP_USER_AGENT'));
             $access->addNote('accept_language', $request->server->get('HTTP_ACCEPT_LANGUAGE'));
             $this->objectManager->persist($access);
             $this->objectManager->flush();
             //            \Ephp\UtilityBundle\Utility\Debug::pr($request->server);
             $request->getSession()->set('access.log', $access->getId());
         } catch (CheckIpException $e) {
             throw $e;
         } catch (\Exception $e) {
         }
     }
 }
 public function process(ContainerBuilder $container)
 {
     //        Reconfigure Propel Bundle to build all the models with a provider
     if (!$container->hasDefinition('propel.build_properties')) {
         throw new MissingDefinitionException('Propel build_properties container definition is missing. Is the PropelBundle loaded in the AppKernel?');
     }
     $definition = $container->getDefinition('propel.build_properties');
     $argument = $definition->getArgument(0);
     //        Register BaseBehavior
     if (!isset($argument['propel.behavior.providerBase.behavior'])) {
         $argument['propel.behavior.providerBase.behavior'] = 'vendor.emiliomg.propel-provider-behavior.src.ProviderBaseBehavior.ProviderBaseBehavior';
     }
     //        Register FassadeBehavior
     if (!isset($argument['propel.behavior.providerFassade.behavior'])) {
         $argument['propel.behavior.providerFassade.behavior'] = 'vendor.emiliomg.propel-provider-behavior.src.ProviderFassadeBehavior.ProviderFassadeBehavior';
     }
     //        Register both behaviors as defaulf behaviors
     $argumentDefault = isset($argument['propel.behavior.default']) ? $argument['propel.behavior.default'] . ', ' : '';
     $argumentDefault .= 'providerBase, providerFassade';
     $argument['propel.behavior.default'] = $argumentDefault;
     //        Enable cacheFile generation, if config says so
     if (true === $container->getParameter('emilio_mg_propel_provider_behavior_auto_generate_services')) {
         if (!isset($argument['propel.behavior.provider.cachefile'])) {
             $argument['propel.behavior.provider.cachefile'] = 'true';
         }
     }
     $definition->replaceArgument(0, $argument);
     //        Check if provider cache exists.
     //        If it does, use it to set the appropriate service definitions.
     //        Do this only if the config says so
     if (true === $container->getParameter('emilio_mg_propel_provider_behavior_auto_generate_services')) {
         $file = $container->getParameter('kernel.root_dir') . '/propel/providerCache.json';
         if (file_exists($file)) {
             $providers = json_decode(file_get_contents($file), true);
             if (JSON_ERROR_NONE == json_last_error()) {
                 if (is_array($providers)) {
                     foreach ($providers as $provider) {
                         $providerFullName = $provider['namespace'] . '\\' . $provider['providerName'];
                         $modelName = strtolower($provider['modelName']);
                         $package = strtolower($provider['package']);
                         if ('src.' === substr($package, 0, 4)) {
                             $package = substr($package, 4);
                         }
                         $providerIdCollection = array();
                         if ($prefix = $container->getParameter('emilio_mg_propel_provider_behavior_auto_generate_service_prefix')) {
                             $providerIdCollection[] = $prefix;
                         }
                         $providerIdCollection = array_merge($providerIdCollection, array($package, 'provider', $modelName));
                         if ($suffix = $container->getParameter('emilio_mg_propel_provider_behavior_auto_generate_service_suffix')) {
                             $providerIdCollection[] = $suffix;
                         }
                         $providerId = implode('.', $providerIdCollection);
                         $definition = new Definition($providerFullName);
                         $container->setDefinition($providerId, $definition);
                     }
                 }
             }
         }
     }
 }
Пример #23
0
 /**
  * {@inheritdoc}
  */
 public function process(ContainerBuilder $container)
 {
     foreach ($container->findTaggedServiceIds('snc_redis.connection_parameters') as $id => $attr) {
         $clientAlias = $attr[0]['clientAlias'];
         $parameterDefinition = $container->getDefinition($id);
         $parameters = $parameterDefinition->getArgument(0);
         if ($parameters['logging']) {
             $optionId = sprintf('snc_redis.client.%s_options', $clientAlias);
             $option = $container->getDefinition($optionId);
             if (1 < count($option->getArguments())) {
                 throw new \RuntimeException('Please check the predis option arguments.');
             }
             $arguments = $option->getArgument(0);
             $connectionFactoryId = sprintf('snc_redis.%s_connectionfactory', $clientAlias);
             $connectionFactoryDef = new Definition($container->getParameter('snc_redis.connection_factory.class'));
             $connectionFactoryDef->setPublic(false);
             $connectionFactoryDef->addArgument(new Reference(sprintf('snc_redis.client.%s_profile', $clientAlias)));
             $connectionFactoryDef->addMethodCall('setConnectionWrapperClass', array($container->getParameter('snc_redis.connection_wrapper.class')));
             $connectionFactoryDef->addMethodCall('setLogger', array(new Reference('snc_redis.logger')));
             $container->setDefinition($connectionFactoryId, $connectionFactoryDef);
             $arguments['connections'] = new Reference($connectionFactoryId);
             $option->replaceArgument(0, $arguments);
         }
     }
 }
 /**
  * {@inheritdoc}
  */
 public function process(ContainerBuilder $container)
 {
     $templatingEngines = $container->getParameter('templating.engines');
     if (in_array('twig', $templatingEngines)) {
         $container->setParameter('twig.form.resources', array_merge($container->getParameter('twig.form.resources'), array('RaphyMarkdownBundle:Form:markdown_widget.html.twig')));
     }
 }
Пример #25
0
 public function process(ContainerBuilder $container)
 {
     $dirs = array();
     foreach ($container->getParameter('kernel.bundles') as $bundle) {
         $reflection = new \ReflectionClass($bundle);
         if (is_dir($dir = dirname($reflection->getFilename()) . '/Resources/config/validation')) {
             $dirs[] = $dir;
         }
     }
     if (is_dir($dir = $container->getParameter('kernel.root_dir') . '/Resources/config/validation')) {
         $dirs[] = $dir;
     }
     $newFiles = array();
     if ($dirs) {
         $finder = new Finder();
         $finder->files()->name('*.xml')->in($dirs);
         foreach ($finder as $file) {
             $newFiles[] = $file->getPathName();
         }
     }
     $validatorBuilder = $container->getDefinition('validator.builder');
     if (count($newFiles) > 0) {
         $validatorBuilder->addMethodCall('addXmlMappings', array($newFiles));
     }
 }
Пример #26
0
 /**
  * {@inheritDoc}
  */
 public function process(ContainerBuilder $container)
 {
     $formType = 'fos_user.registration.form.type';
     if ($container->hasParameter($formType)) {
         $value = $container->getParameter($formType);
         if ($value == 'fos_user_registration') {
             $container->setParameter($formType, 'glory_user_register');
         }
     }
     $formName = 'fos_user.registration.form.name';
     if ($container->hasParameter($formName)) {
         $value = $container->getParameter($formName);
         if ($value == 'fos_user_registration_form') {
             $container->setParameter($formName, 'user');
         }
     }
     $formName = 'fos_user.registration.form.validation_groups';
     if ($container->hasParameter($formName)) {
         $groups = $container->getParameter($formName);
         if (in_array('Registration', $groups)) {
             $key = array_search('Registration', $groups);
             $groups[$key] = 'Register';
             $container->setParameter($formName, $groups);
         }
     }
 }
Пример #27
0
 /**
  * Loads the Twig configuration.
  *
  * @param array            $config    An array of configuration settings
  * @param ContainerBuilder $container A ContainerBuilder instance
  */
 public function configLoad($config, ContainerBuilder $container)
 {
     if (!$container->hasDefinition('twig')) {
         $loader = new XmlFileLoader($container, __DIR__ . '/../Resources/config');
         $loader->load('twig.xml');
     }
     // form resources
     foreach (array('resources', 'resource') as $key) {
         if (isset($config['form'][$key])) {
             $resources = (array) $config['form'][$key];
             $container->setParameter('twig.form.resources', array_merge($container->getParameter('twig.form.resources'), $resources));
             unset($config['form'][$key]);
         }
     }
     // globals
     $def = $container->getDefinition('twig');
     $globals = $this->fixConfig($config, 'global');
     if (isset($globals[0])) {
         foreach ($globals as $global) {
             $def->addMethodCall('addGlobal', array($global['key'], new Reference($global['id'])));
         }
     } else {
         foreach ($globals as $key => $id) {
             $def->addMethodCall('addGlobal', array($key, new Reference($id)));
         }
     }
     unset($config['globals'], $config['global']);
     // convert - to _
     foreach ($config as $key => $value) {
         $config[str_replace('-', '_', $key)] = $value;
     }
     $container->setParameter('twig.options', array_replace($container->getParameter('twig.options'), $config));
 }
 /**
  * Подрубаем шаблон виджета
  *
  * @param ContainerBuilder $container
  */
 protected function registerResources(ContainerBuilder $container)
 {
     $templatingEngines = $container->getParameter('templating.engines');
     if (in_array('twig', $templatingEngines)) {
         $container->setParameter('twig.form.resources', array_merge(array('ItBlasterAttachFileBundle:Form:attach_file_widget.html.twig'), $container->getParameter('twig.form.resources')));
     }
 }
Пример #29
0
 /**
  * {@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);
         }
     }
 }
 /**
  * You can modify the container here before it is dumped to PHP code.
  *
  * @param ContainerBuilder $container
  */
 public function process(ContainerBuilder $container)
 {
     // get applications configuration array
     $applications = $container->getParameter(DreamCommerceShopAppstoreExtension::ALIAS . '.apps');
     // create definition for application registry
     $applicationsDefinition = new Definition('DreamCommerce\\ShopAppstoreBundle\\Handler\\ApplicationRegistry');
     // configuration for every app
     foreach ($applications as $app => $data) {
         $definition = new Definition('DreamCommerce\\ShopAppstoreBundle\\Handler\\Application');
         $definition->addArgument($app);
         $definition->addArgument($data['app_id']);
         $definition->addArgument($data['app_secret']);
         $definition->addArgument($data['appstore_secret']);
         // if logger is instantiated, use it
         $definition->addArgument(new Reference(DreamCommerceShopAppstoreExtension::ALIAS . '.logger', ContainerInterface::NULL_ON_INVALID_REFERENCE));
         // ignore SSL errors?
         $definition->addArgument($container->getParameter(DreamCommerceShopAppstoreExtension::ALIAS . '.skip_ssl'));
         // application version
         $definition->addArgument($data['minimal_version']);
         // user agent, todo: make calls consistent, eg. logger argument -> call like this
         $definition->addMethodCall('setUserAgent', [$data['user_agent']]);
         // defined application webhooks configuration
         $definition->addMethodCall('setWebhooks', [$data['webhooks']]);
         $app = DreamCommerceShopAppstoreExtension::ALIAS . '.app.' . $app;
         // append definition
         $container->setDefinition($app, $definition);
         // add application to the registry
         $applicationsDefinition->addMethodCall('register', array(new Reference($app)));
     }
     // append applications registry to the container
     $container->setDefinition(DreamCommerceShopAppstoreExtension::ALIAS . '.apps', $applicationsDefinition);
 }