]> Raphaël G. Git Repositories - airbundle/blob - DependencyInjection/Configuration.php
13d24a7afe297048de5ecc4efc53840d280c0532
[airbundle] / DependencyInjection / Configuration.php
1 <?php
2
3 namespace Rapsys\AirBundle\DependencyInjection;
4
5 use Symfony\Component\Config\Definition\Builder\TreeBuilder;
6 use Symfony\Component\Config\Definition\ConfigurationInterface;
7
8 /**
9 * This is the class that validates and merges configuration from your app/config files.
10 *
11 * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/configuration.html}
12 */
13 class Configuration implements ConfigurationInterface {
14 /**
15 * {@inheritdoc}
16 */
17 public function getConfigTreeBuilder() {
18 $treeBuilder = new TreeBuilder();
19
20 // Here you should define the parameters that are allowed to
21 // configure your bundle. See the documentation linked above for
22 // more information on that topic.
23 //Set defaults
24 $defaults = [
25 'logo' => 'bundles/rapsysair/png/logo.png',
26 'title' => 'Open Air',
27 'contact_name' => 'Raphaël Gertz',
28 'contact_mail' => 'airlibre@rapsys.eu',
29 ];
30
31 //Here we define the parameters that are allowed to configure the bundle.
32 //TODO: see https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php for default value and description
33 //TODO: see http://symfony.com/doc/current/components/config/definition.html
34 //XXX: use bin/console config:dump-reference to dump class infos
35
36 //Here we define the parameters that are allowed to configure the bundle.
37 $treeBuilder
38 //Parameters
39 ->root('parameters')
40 ->addDefaultsIfNotSet()
41 ->children()
42 ->arrayNode('rapsys_air')
43 ->addDefaultsIfNotSet()
44 ->children()
45 ->scalarNode('logo')->defaultValue($defaults['logo'])->treatNullLike($defaults['logo'])->isRequired()->end()
46 ->scalarNode('title')->defaultValue($defaults['title'])->treatNullLike($defaults['title'])->isRequired()->end()
47 ->scalarNode('contact_name')->defaultValue($defaults['contact_name'])->treatNullLike($defaults['contact_name'])->isRequired()->end()
48 ->scalarNode('contact_mail')->defaultValue($defaults['contact_mail'])->treatNullLike($defaults['contact_mail'])->isRequired()->end()
49 ->end()
50 ->end()
51 ->end()
52 ->end();
53
54 return $treeBuilder;
55 }
56 }