/** * 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)); } }
/** * {@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); }
/** * {@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); } }
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'); } }
/** * 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)); } } } }
/** * {@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); }
/** * {@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))); } }
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); }
/** * @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'); } }
/** * 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); } } } } } }
/** * {@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'))); } }
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)); } }
/** * {@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); } } }
/** * 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'))); } }
/** * {@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); }