public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('installer');
$rootNode->children()->arrayNode('admin')->children()->scalarNode('name')->defaultValue('admin')->cannotBeEmpty()->end()->scalarNode('password')->defaultValue('adminadmin')->cannotBeEmpty()->end()->scalarNode('email')->defaultValue('[email protected]')->cannotBeEmpty()->end()->end()->end()->arrayNode('board')->children()->scalarNode('lang')->defaultValue('en')->cannotBeEmpty()->end()->scalarNode('name')->defaultValue('My Board')->cannotBeEmpty()->end()->scalarNode('description')->defaultValue('My amazing new phpBB board')->cannotBeEmpty()->end()->end()->end()->arrayNode('database')->children()->scalarNode('dbms')->defaultValue('sqlite3')->cannotBeEmpty()->isRequired()->end()->scalarNode('dbhost')->defaultValue(null)->end()->scalarNode('dbport')->defaultValue(null)->end()->scalarNode('dbuser')->defaultValue(null)->end()->scalarNode('dbpasswd')->defaultValue(null)->end()->scalarNode('dbname')->defaultValue(null)->end()->scalarNode('table_prefix')->defaultValue('phpbb_')->cannotBeEmpty()->isRequired()->end()->end()->end()->arrayNode('email')->canBeEnabled()->addDefaultsIfNotSet()->children()->booleanNode('smtp_delivery')->defaultValue(false)->treatNullLike(false)->end()->scalarNode('smtp_host')->defaultValue(null)->end()->scalarNode('smtp_port')->defaultValue(null)->end()->scalarNode('smtp_auth')->defaultValue(null)->end()->scalarNode('smtp_user')->defaultValue(null)->end()->scalarNode('smtp_pass')->defaultValue(null)->end()->end()->end()->arrayNode('server')->children()->booleanNode('cookie_secure')->defaultValue(false)->treatNullLike(false)->end()->scalarNode('server_protocol')->defaultValue('http://')->cannotBeEmpty()->end()->booleanNode('force_server_vars')->defaultValue(false)->treatNullLike(false)->end()->scalarNode('server_name')->defaultValue('localhost')->cannotBeEmpty()->end()->integerNode('server_port')->defaultValue(80)->min(1)->end()->scalarNode('script_path')->defaultValue('/')->cannotBeEmpty()->end()->end()->end()->arrayNode('extensions')->prototype('scalar')->end()->defaultValue([])->end()->end();
return $treeBuilder;
}