public function load(array $configs, ContainerBuilder $container) { $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $processor = new Processor(); $configuration = new Configuration(); $config = $processor->process($configuration->getConfigTree(), $configs); $loader->load('services.xml'); if ($config['persister'] == 'orm') { $persister = $container->register('davidbadura_fixtures.persister', 'DavidBadura\\Fixtures\\Persister\\DoctrinePersister'); $serviceId = $config['persister_id'] ? $config['persister_id'] : 'doctrine.orm.entity_manager'; $persister->addArgument(new Reference($serviceId)); } elseif ($config['persister'] === 'odm') { $persister = $container->register('davidbadura_fixtures.persister', 'DavidBadura\\Fixtures\\Persister\\MongoDBPersister'); $serviceId = $config['persister_id'] ? $config['persister_id'] : 'doctrine.odm.mongodb.document_manager'; $persister->addArgument(new Reference($serviceId)); } else { throw new \Exception(); } if (isset($config['bundles'])) { $fixtureLoader = $container->getDefinition('davidbadura_fixtures.loader_factory'); $fixtureLoader->addArgument(array_unique($config['bundles'])); } }