*/ class PropelExtension extends Extension { /** * Loads the Propel configuration. * * @param array $configs An array of configuration settings * @param ContainerBuilder $container A ContainerBuilder instance */ public function load(array $configs, ContainerBuilder $container) { $processor = new Processor(); $configuration = $this->getConfiguration($configs, $container); $config = $processor->processConfiguration($configuration, $configs); if (1 === count($config['database']['connections'])) { $defaultConnection = array_keys($config['database']['connections'])[0]; if (!isset($config['runtime']['defaultConnection'])) { $config['runtime']['defaultConnection'] = $defaultConnection; } if (!isset($config['generator']['defaultConnection'])) { $config['generator']['defaultConnection'] = $defaultConnection; } } $container->setParameter('propel.logging', $config['runtime']['logging']); $container->setParameter('propel.configuration', $config); // Load services if (!$container->hasDefinition('propel')) { $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader->load('propel.xml'); $loader->load('converters.xml'); $loader->load('security.xml'); } } public function getConfiguration(array $config, ContainerBuilder $container) { return new Configuration($container->getParameter('kernel.debug')); } /** * Returns the base path for the XSD files. * * @return string The XSD base path */ public function getXsdValidationBasePath() { return __DIR__.'/../Resources/config/schema'; } /** * Returns the recommended alias to use in XML. * * This alias is also the mandatory prefix to use when using YAML. * * @return string The alias */ public function getAlias() { return 'propel'; } }