Skip to content

Commit 4e68d8d

Browse files
author
Andrii Afanasiev
committed
use default configuration if symfony_rollbar.rollbar config is missed
1 parent 84b2729 commit 4e68d8d

File tree

3 files changed

+81
-62
lines changed

3 files changed

+81
-62
lines changed

DependencyInjection/Configuration.php

Lines changed: 66 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -66,77 +66,81 @@ public function getConfigTreeBuilder()
6666

6767
$rootNode
6868
->children()
69-
->scalarNode('enable')->defaultTrue()->end()
69+
->booleanNode('enable')->defaultTrue()->end()
7070
->arrayNode('exclude')
7171
->treatNullLike([])
7272
->prototype('scalar')->end()
7373
->defaultValue(static::$exclude)
7474
->end()
75-
->arrayNode('rollbar')->children()
76-
->scalarNode('access_token')->defaultValue('')->end()
77-
->scalarNode('agent_log_location')->defaultValue('%kernel.logs_dir%/rollbar.log')->end()
78-
->scalarNode('allow_exec')->defaultTrue()->end()
79-
->scalarNode('endpoint')->defaultValue('https://api.rollbar.com/api/1/')->end()
80-
->scalarNode('base_api_url')->defaultValue('https://api.rollbar.com/api/1/')->end()
81-
->scalarNode('branch')->defaultValue(static::BRANCH)->end()
82-
->scalarNode('capture_error_stacktraces')->defaultTrue()->end()
83-
->scalarNode('checkIgnore')->defaultNull()->end()
84-
->scalarNode('code_version')->defaultValue('')->end()
85-
->scalarNode('enable_utf8_sanitization')->defaultTrue()->end()
86-
->scalarNode('environment')->defaultValue(static::ENVIRONMENT)->end()
87-
->arrayNode('custom')
88-
->treatNullLike([])
89-
->prototype('scalar')->end()
90-
->defaultValue([])
91-
->end()
92-
->arrayNode('error_sample_rates')
93-
->treatNullLike([])
94-
->prototype('scalar')->end()
95-
->defaultValue([])
96-
->end()
97-
->arrayNode('exception_sample_rates')
98-
->treatNullLike([])
99-
->prototype('scalar')->end()
100-
->defaultValue([])
101-
->end()
102-
->scalarNode('fluent_host')->defaultValue(static::FLUENT_HOST)->end()
103-
->scalarNode('fluent_port')->defaultValue(static::FLUENT_PORT)->end()
104-
->scalarNode('fluent_tag')->defaultValue(static::FLUENT_TAG)->end()
105-
->scalarNode('handler')->defaultValue(static::HANDLER_BLOCKING)->end()
106-
->scalarNode('host')->defaultNull()->end()
107-
->scalarNode('include_error_code_context')->defaultFalse()->end()
108-
->scalarNode('include_exception_code_context')->defaultFalse()->end()
109-
->scalarNode('included_errno')->defaultValue($defaultErrorMask)->end()
110-
->scalarNode('logger')->defaultNull()->end()
111-
->arrayNode('person')
112-
->treatNullLike([])
113-
->prototype('scalar')->end()
114-
->defaultValue([])
115-
->end()
116-
->scalarNode('person_fn')->defaultNull()->end()
117-
->scalarNode('root')->defaultValue('%kernel.root_dir%')->end()
118-
->arrayNode('scrub_fields')
119-
->treatNullLike([])
120-
->prototype('scalar')->end()
121-
->defaultValue(static::$scrubFieldsDefault)
75+
->arrayNode('rollbar')
76+
->addDefaultsIfNotSet()
77+
->children()
78+
->scalarNode('access_token')->defaultValue('')->end()
79+
->scalarNode('agent_log_location')
80+
->defaultValue('%kernel.logs_dir%/rollbar.log')
12281
->end()
123-
->scalarNode('scrub_whitelist')->defaultNull()->end()
124-
->scalarNode('shift_function')->defaultTrue()->end()
125-
->scalarNode('timeout')->defaultValue(static::TIMEOUT)->end()
126-
->scalarNode('report_suppressed')->defaultFalse()->end()
127-
->scalarNode('use_error_reporting')->defaultFalse()->end()
128-
->scalarNode('proxy')->defaultNull()->end()
129-
->scalarNode('send_message_trace')->defaultFalse()->end()
130-
->scalarNode('include_raw_request_body')->defaultFalse()->end()
131-
->scalarNode('local_vars_dump')->defaultFalse()->end()
82+
->booleanNode('allow_exec')->defaultTrue()->end()
83+
->scalarNode('endpoint')->defaultValue('https://api.rollbar.com/api/1/')->end()
84+
->scalarNode('base_api_url')->defaultValue('https://api.rollbar.com/api/1/')->end()
85+
->scalarNode('branch')->defaultValue(static::BRANCH)->end()
86+
->booleanNode('capture_error_stacktraces')->defaultTrue()->end()
87+
->scalarNode('checkIgnore')->defaultNull()->end()
88+
->scalarNode('code_version')->defaultValue('')->end()
89+
->booleanNode('enable_utf8_sanitization')->defaultTrue()->end()
90+
->scalarNode('environment')->defaultValue(static::ENVIRONMENT)->end()
91+
->arrayNode('custom')
92+
->treatNullLike([])
93+
->prototype('scalar')->end()
94+
->defaultValue([])
95+
->end()
96+
->arrayNode('error_sample_rates')
97+
->treatNullLike([])
98+
->prototype('scalar')->end()
99+
->defaultValue([])
100+
->end()
101+
->arrayNode('exception_sample_rates')
102+
->treatNullLike([])
103+
->prototype('scalar')->end()
104+
->defaultValue([])
105+
->end()
106+
->scalarNode('fluent_host')->defaultValue(static::FLUENT_HOST)->end()
107+
->scalarNode('fluent_port')->defaultValue(static::FLUENT_PORT)->end()
108+
->scalarNode('fluent_tag')->defaultValue(static::FLUENT_TAG)->end()
109+
->scalarNode('handler')->defaultValue(static::HANDLER_BLOCKING)->end()
110+
->scalarNode('host')->defaultNull()->end()
111+
->booleanNode('include_error_code_context')->defaultFalse()->end()
112+
->booleanNode('include_exception_code_context')->defaultFalse()->end()
113+
->scalarNode('included_errno')->defaultValue($defaultErrorMask)->end()
114+
->scalarNode('logger')->defaultNull()->end()
115+
->arrayNode('person')
116+
->treatNullLike([])
117+
->prototype('scalar')->end()
118+
->defaultValue([])
119+
->end()
120+
->scalarNode('person_fn')->defaultNull()->end()
121+
->scalarNode('root')->defaultValue('%kernel.root_dir%')->end()
122+
->arrayNode('scrub_fields')
123+
->treatNullLike([])
124+
->prototype('scalar')->end()
125+
->defaultValue(static::$scrubFieldsDefault)
126+
->end()
127+
->scalarNode('scrub_whitelist')->defaultNull()->end()
128+
->booleanNode('shift_function')->defaultTrue()->end()
129+
->scalarNode('timeout')->defaultValue(static::TIMEOUT)->end()
130+
->booleanNode('report_suppressed')->defaultFalse()->end()
131+
->booleanNode('use_error_reporting')->defaultFalse()->end()
132+
->scalarNode('proxy')->defaultNull()->end()
133+
->booleanNode('send_message_trace')->defaultFalse()->end()
134+
->booleanNode('include_raw_request_body')->defaultFalse()->end()
135+
->booleanNode('local_vars_dump')->defaultFalse()->end()
132136
->end()
133137
->end()
134138
->arrayNode('rollbar_js')->children()
135-
->scalarNode('enabled')->defaultTrue()->end()
139+
->booleanNode('enabled')->defaultTrue()->end()
136140
->scalarNode('accessToken')->defaultValue('')->end()
137-
->scalarNode('captureUncaught')->defaultTrue()->end()
141+
->booleanNode('captureUncaught')->defaultTrue()->end()
138142
->scalarNode('uncaughtErrorLevel')->defaultValue(static::JS_UNCAUGHT_LEVEL)->end()
139-
->scalarNode('captureUnhandledRejections')->defaultTrue()->end()
143+
->booleanNode('captureUnhandledRejections')->defaultTrue()->end()
140144
->arrayNode('payload')
141145
->treatNullLike([])
142146
->prototype('scalar')->end()
@@ -147,8 +151,8 @@ public function getConfigTreeBuilder()
147151
->prototype('scalar')->end()
148152
->defaultValue([])
149153
->end()
150-
->scalarNode('verbose')->defaultFalse()->end()
151-
->scalarNode('async')->defaultTrue()->end()
154+
->booleanNode('verbose')->defaultFalse()->end()
155+
->booleanNode('async')->defaultTrue()->end()
152156
->arrayNode('autoInstrument')
153157
->treatNullLike([])
154158
->prototype('scalar')->end()
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
imports:
2+
- { resource: config.yml }
3+
- { resource: parameters.yml }

Tests/SymfonyRollbarBundle/DependencyInjection/ConfigurationTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,16 @@ public function testParameters()
8787
$this->assertNotEmpty($config);
8888
$this->assertEquals($default, $config);
8989
}
90+
91+
public function testEmptyConfiguration()
92+
{
93+
static::bootKernel(['environment' => 'test_empty']);
94+
95+
$container = static::$kernel->getContainer();
96+
$config = $container->getParameter(SymfonyRollbarExtension::ALIAS . '.config');
97+
98+
$this->assertArrayHasKey('enable', $config);
99+
$this->assertArrayHasKey('exclude', $config);
100+
$this->assertArrayHasKey('rollbar', $config);
101+
}
90102
}

0 commit comments

Comments
 (0)