debug = $debug; } protected function addDatabaseSection(ArrayNodeDefinition $node) { $node ->children() ->arrayNode('database') ->isRequired() ->addDefaultsIfNotSet() ->children() ->arrayNode('connections') ->isRequired() ->requiresAtLeastOneElement() ->normalizeKeys(false) ->prototype('array') ->fixXmlConfig('slave') ->children() ->scalarNode('classname')->defaultValue($this->debug ? '\Propel\Runtime\Connection\DebugPDO' : '\Propel\Runtime\Connection\ConnectionWrapper')->end() ->enumNode('adapter') ->isRequired() ->cannotBeEmpty() ->values(array('mysql', 'pgsql', 'sqlite', 'mssql', 'sqlsrv', 'oracle')) ->end() ->scalarNode('dsn')->isRequired()->cannotBeEmpty()->end() ->scalarNode('user')->isRequired()->end() ->scalarNode('password')->isRequired()->treatNullLike('')->end() ->arrayNode('options') ->addDefaultsIfNotSet() ->children() ->booleanNode('ATTR_PERSISTENT')->defaultFalse()->end() ->end() ->end() ->arrayNode('attributes') ->addDefaultsIfNotSet() ->children() ->booleanNode('ATTR_EMULATE_PREPARES')->defaultFalse()->end() ->end() ->end() ->arrayNode('settings') ->fixXmlConfig('query', 'queries') ->children() ->scalarNode('charset')->defaultValue('utf8')->end() ->arrayNode('queries') ->prototype('scalar')->end() ->end() ->end() ->end() ->arrayNode('slaves') ->prototype('array') ->children() ->scalarNode('dsn')->end() ->end() ->end() ->end() ->end() ->end() ->end() ->arrayNode('adapters') ->addDefaultsIfNotSet() ->children() ->arrayNode('mysql') ->addDefaultsIfNotSet() ->children() ->scalarNode('tableType')->defaultValue('InnoDB')->treatNullLike('InnoDB')->end() ->scalarNode('tableEngineKeyword')->defaultValue('ENGINE')->end() ->end() ->end() ->arrayNode('sqlite') ->addDefaultsIfNotSet() ->children() ->scalarNode('foreignKey')->end() ->scalarNode('tableAlteringWorkaround')->end() ->end() ->end() ->arrayNode('oracle') ->addDefaultsIfNotSet() ->children() ->scalarNode('autoincrementSequencePattern')->defaultValue('${table}_SEQ')->end() ->end() ->end() ->end() ->end() //adapters ->end() ->end() //database ->end() ; } }