/** * Loads and processes configuration to configure the Container. * * @throws InvalidArgumentException * @param array $configs * @param ContainerBuilder $container * @return void */ public function load(array $configs, ContainerBuilder $container) { $processor = new Processor(); $configuration = new Configuration(); $config = $processor->process($configuration->getConfigTree(), $configs); $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); if (!in_array(strtolower($config['db_driver']), array('mongodb', 'orm'))) { throw new \InvalidArgumentException(sprintf('Invalid db driver "%s".', $config['db_driver'])); } $loader->load(sprintf('%s.xml', $config['db_driver'])); foreach (array('blamer', 'form', 'creator', 'spam_detection', 'twig', 'sorting') as $basename) { $loader->load(sprintf('%s.xml', $basename)); } // only load acl services if acl is enabled for the project if (array_key_exists('acl', $config)) { $this->loadAcl($container, $config); } $container->setParameter('fos_comment.template.engine', $config['template']['engine']); $container->setParameter('fos_comment.model.comment.class', $config['class']['model']['comment']); $container->setParameter('fos_comment.model.thread.class', $config['class']['model']['thread']); if (array_key_exists('vote', $config['class']['model'])) { $container->setParameter('fos_comment.model.vote.class', $config['class']['model']['vote']); } $container->setParameter('fos_comment.model_manager_name', $config['model_manager_name']); // handle the MongoDB document manager name in a specific way as it does not have a registry to make it easy // TODO: change it if https://github.com/symfony/DoctrineMongoDBBundle/pull/31 is merged if ('mongodb' === $config['db_driver']) { if (null === $config['model_manager_name']) { $container->setAlias('fos_comment.document_manager', new Alias('doctrine.odm.mongodb.document_manager', false)); } else { $container->setAlias('fos_comment.document_manager', new Alias(sprintf('doctrine.odm.%s_mongodb.document_manager', $config['model_manager_name']), false)); } } $container->setParameter('fos_comment.form.comment.type', $config['form']['comment']['type']); $container->setParameter('fos_comment.form.comment.name', $config['form']['comment']['name']); $container->setParameter('fos_comment.sorting_factory.default_sorter', $config['service']['sorting']['default']); $container->setAlias('fos_comment.form_factory.comment', $config['service']['form_factory']['comment']); $container->setAlias('fos_comment.creator.thread', $config['service']['creator']['thread']); $container->setAlias('fos_comment.creator.comment', $config['service']['creator']['comment']); $container->setAlias('fos_comment.creator.vote', $config['service']['creator']['vote']); $container->setAlias('fos_comment.blamer.comment', $config['service']['blamer']['comment']); $container->setAlias('fos_comment.blamer.vote', $config['service']['blamer']['vote']); $container->setAlias('fos_comment.spam_detection.comment', $config['service']['spam_detection']['comment']); $container->setAlias('fos_comment.manager.thread', $config['service']['manager']['thread']); $container->setAlias('fos_comment.manager.comment', $config['service']['manager']['comment']); $container->setAlias('fos_comment.manager.vote', $config['service']['manager']['vote']); }
/** * Loads and processes configuration to configure the Container. * * @throws InvalidArgumentException * @param array $configs * @param ContainerBuilder $container * @return void */ public function load(array $configs, ContainerBuilder $container) { $processor = new Processor(); $configuration = new Configuration(); $config = $processor->process($configuration->getConfigTree(), $configs); $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); if (!in_array(strtolower($config['db_driver']), array('mongodb', 'orm'))) { throw new \InvalidArgumentException(sprintf('Invalid db driver "%s".', $config['db_driver'])); } $loader->load(sprintf('%s.xml', $config['db_driver'])); foreach (array('blamer', 'form', 'creator', 'spam_detection', 'twig', 'sorting') as $basename) { $loader->load(sprintf('%s.xml', $basename)); } // only load acl services if acl is enabled for the project if (array_key_exists('acl', $config)) { $this->loadAcl($container, $config); } $container->setParameter('fos_comment.model.comment.class', $config['class']['model']['comment']); $container->setParameter('fos_comment.model.thread.class', $config['class']['model']['thread']); if (array_key_exists('vote', $config['class']['model'])) { $container->setParameter('fos_comment.model.vote.class', $config['class']['model']['vote']); } $container->setParameter('fos_comment.model_manager_name', $config['model_manager_name']); $container->setParameter('fos_comment.form.comment.type', $config['form']['comment']['type']); $container->setParameter('fos_comment.form.comment.name', $config['form']['comment']['name']); $container->setParameter('fos_comment.sorting_factory.default_sorter', $config['service']['sorting']['default']); $container->setAlias('fos_comment.form_factory.comment', $config['service']['form_factory']['comment']); $container->setAlias('fos_comment.creator.thread', $config['service']['creator']['thread']); $container->setAlias('fos_comment.creator.comment', $config['service']['creator']['comment']); $container->setAlias('fos_comment.creator.vote', $config['service']['creator']['vote']); $container->setAlias('fos_comment.blamer.comment', $config['service']['blamer']['comment']); $container->setAlias('fos_comment.blamer.vote', $config['service']['blamer']['vote']); $container->setAlias('fos_comment.spam_detection.comment', $config['service']['spam_detection']['comment']); $container->setAlias('fos_comment.manager.thread', $config['service']['manager']['thread']); $container->setAlias('fos_comment.manager.comment', $config['service']['manager']['comment']); $container->setAlias('fos_comment.manager.vote', $config['service']['manager']['vote']); }