Skip to content

Commit be4bb45

Browse files
authored
Release v1.13.0
2 parents 08ed503 + ee37ab3 commit be4bb45

File tree

10 files changed

+106
-61
lines changed

10 files changed

+106
-61
lines changed

BugsnagBundle.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ class BugsnagBundle extends Bundle
1111
*
1212
* @return string
1313
*/
14-
const VERSION = '1.12.0';
14+
const VERSION = '1.13.0';
1515
}

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
Changelog
22
=========
33

4+
## 1.13.0 (2022-10-24)
5+
6+
### Enhancements
7+
8+
* Add `max_breadcrumbs` config option for configuring the maximum number of breadcrumbs to attach to a report
9+
[#158](https://github.com/bugsnag/bugsnag-symfony/pull/158)
10+
411
## 1.12.0 (2022-05-20)
512

613
### Enhancements

DependencyInjection/ClientFactory.php

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,13 @@ class ClientFactory
221221
*/
222222
private $featureFlags;
223223

224+
/**
225+
* The maximum number of breadcrumbs that are allowed to be stored.
226+
*
227+
* @var int|null
228+
*/
229+
private $maxBreadcrumbs;
230+
224231
/**
225232
* @param SymfonyResolver $resolver
226233
* @param TokenStorageInterface|null $tokens
@@ -249,6 +256,7 @@ class ClientFactory
249256
* @param array $discardClasses
250257
* @param string[] $redactedKeys
251258
* @param array[] $featureFlags
259+
* @param int|null $maxBreadcrumbs
252260
*
253261
* @return void
254262
*/
@@ -279,7 +287,8 @@ public function __construct(
279287
$memoryLimitIncrease = false,
280288
array $discardClasses = [],
281289
array $redactedKeys = [],
282-
array $featureFlags = []
290+
array $featureFlags = [],
291+
$maxBreadcrumbs = null
283292
) {
284293
$this->resolver = $resolver;
285294
$this->tokens = $tokens;
@@ -310,6 +319,7 @@ public function __construct(
310319
$this->discardClasses = $discardClasses;
311320
$this->redactedKeys = $redactedKeys;
312321
$this->featureFlags = $featureFlags;
322+
$this->maxBreadcrumbs = $maxBreadcrumbs;
313323
}
314324

315325
/**
@@ -391,6 +401,10 @@ public function make()
391401
$client->addFeatureFlags($featureFlags);
392402
}
393403

404+
if ($this->maxBreadcrumbs !== null) {
405+
$client->setMaxBreadcrumbs($this->maxBreadcrumbs);
406+
}
407+
394408
return $client;
395409
}
396410

DependencyInjection/Configuration.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ public function getConfigTreeBuilder()
134134
->treatNullLike([])
135135
->defaultValue([])
136136
->end()
137+
->scalarNode('max_breadcrumbs')
138+
->defaultNull()
137139
->end();
138140

139141
return $treeBuilder;

Resources/config/services.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ services:
3232
- '%bugsnag.discard_classes%'
3333
- '%bugsnag.redacted_keys%'
3434
- '%bugsnag.feature_flags%'
35+
- '%bugsnag.max_breadcrumbs%'
3536

3637
bugsnag:
3738
class: '%bugsnag.client%'

Tests/DependencyInjection/ClientFactoryTest.php

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Bugsnag\BugsnagBundle\EventListener\BugsnagShutdown;
77
use Bugsnag\BugsnagBundle\Request\SymfonyResolver;
88
use Bugsnag\Client;
9+
use Bugsnag\FeatureFlag;
910
use GrahamCampbell\TestBenchCore\MockeryTrait;
1011
use Mockery;
1112
use PHPUnit\Framework\TestCase;
@@ -318,16 +319,32 @@ public function testFeatureFlagsAreSetCorrectly()
318319
$this->assertInstanceOf(Client::class, $client);
319320

320321
$expected = [
321-
['featureFlag' => 'flag1'],
322-
['featureFlag' => 'flag2', 'variant' => '1'],
323-
['featureFlag' => 'flag3', 'variant' => '2'],
324-
['featureFlag' => 'flag4'],
322+
new FeatureFlag('flag1'),
323+
new FeatureFlag('flag2', '1'),
324+
new FeatureFlag('flag3', '2'),
325+
new FeatureFlag('flag4'),
325326
];
326327

327328
/** @var Client $client */
328329
$actual = $client->getConfig()->getFeatureFlagsCopy()->toArray();
329330

330-
$this->assertSame($expected, $actual);
331+
$this->assertEquals($expected, $actual);
332+
}
333+
334+
public function testMaxBreadcrumbsIsSetCorrectly()
335+
{
336+
$maxBreadcrumbs = 100;
337+
338+
$client = $this->createClient([
339+
'maxBreadcrumbs' => $maxBreadcrumbs,
340+
]);
341+
342+
$this->assertInstanceOf(Client::class, $client);
343+
344+
/** @var Client $client */
345+
$actual = $client->getMaxBreadcrumbs();
346+
347+
$this->assertSame($maxBreadcrumbs, $actual);
331348
}
332349

333350
/**
@@ -421,6 +438,8 @@ private function defaultArguments()
421438
'memoryLimitIncrease' => false,
422439
'discardClasses' => [],
423440
'redactedKeys' => [],
441+
'featureFlags' => [],
442+
'maxBreadcrumbs' => null,
424443
];
425444
}
426445
}

Tests/DependencyInjection/ConfigurationTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ final class ConfigurationTest extends TestCase
4141
'discard_classes' => [],
4242
'redacted_keys' => [],
4343
'feature_flags' => [],
44+
'max_breadcrumbs' => null,
4445
];
4546

4647
/**
@@ -108,6 +109,7 @@ public function configProvider()
108109
['name' => 'flag1'],
109110
['name' => 'flag2', 'variant' => 'var1'],
110111
],
112+
'max_breadcrumbs' => 100,
111113
],
112114
$this->buildExpectedConfiguration($fullConfig),
113115
],

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
],
1414
"require": {
1515
"php": ">=5.5",
16-
"bugsnag/bugsnag": "^3.28.0",
16+
"bugsnag/bugsnag": "^3.29.0",
1717
"symfony/config": "^2.7|^3|^4|^5|^6",
1818
"symfony/console": "^2.7|^3|^4|^5|^6",
1919
"symfony/dependency-injection": "^2.7|^3|^4|^5|^6",

features/fixtures/symfony-5/composer.json

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -24,32 +24,32 @@
2424
"doctrine/orm": "^2.9",
2525
"phpdocumentor/reflection-docblock": "^5.2",
2626
"sensio/framework-extra-bundle": "^6.1",
27-
"symfony/asset": "5.3.*",
28-
"symfony/console": "5.3.*",
29-
"symfony/dotenv": "5.3.*",
30-
"symfony/expression-language": "5.3.*",
27+
"symfony/asset": "5.*",
28+
"symfony/console": "5.*",
29+
"symfony/dotenv": "5.*",
30+
"symfony/expression-language": "5.*",
3131
"symfony/flex": "^1.3.1",
32-
"symfony/form": "5.3.*",
33-
"symfony/framework-bundle": "5.3.*",
34-
"symfony/http-client": "5.3.*",
35-
"symfony/intl": "5.3.*",
36-
"symfony/mailer": "5.3.*",
37-
"symfony/mime": "5.3.*",
32+
"symfony/form": "5.*",
33+
"symfony/framework-bundle": "5.*",
34+
"symfony/http-client": "5.*",
35+
"symfony/intl": "5.*",
36+
"symfony/mailer": "5.*",
37+
"symfony/mime": "5.*",
3838
"symfony/monolog-bundle": "^3.1",
39-
"symfony/notifier": "5.3.*",
40-
"symfony/process": "5.3.*",
41-
"symfony/property-access": "5.3.*",
42-
"symfony/property-info": "5.3.*",
43-
"symfony/proxy-manager-bridge": "5.3.*",
44-
"symfony/runtime": "5.3.*",
45-
"symfony/security-bundle": "5.3.*",
46-
"symfony/serializer": "5.3.*",
47-
"symfony/string": "5.3.*",
48-
"symfony/translation": "5.3.*",
39+
"symfony/notifier": "5.*",
40+
"symfony/process": "5.*",
41+
"symfony/property-access": "5.*",
42+
"symfony/property-info": "5.*",
43+
"symfony/proxy-manager-bridge": "5.*",
44+
"symfony/runtime": "5.*",
45+
"symfony/security-bundle": "5.*",
46+
"symfony/serializer": "5.*",
47+
"symfony/string": "5.*",
48+
"symfony/translation": "5.*",
4949
"symfony/twig-bundle": "^5.3",
50-
"symfony/validator": "5.3.*",
51-
"symfony/web-link": "5.3.*",
52-
"symfony/yaml": "5.3.*",
50+
"symfony/validator": "5.*",
51+
"symfony/web-link": "5.*",
52+
"symfony/yaml": "5.*",
5353
"twig/extra-bundle": "^2.12|^3.0",
5454
"twig/twig": "^2.12|^3.0"
5555
},
@@ -108,7 +108,7 @@
108108
"extra": {
109109
"symfony": {
110110
"allow-contrib": false,
111-
"require": "5.3.*"
111+
"require": "5.*"
112112
}
113113
}
114114
}

features/fixtures/symfony-6/composer.json

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -24,35 +24,35 @@
2424
"phpdocumentor/reflection-docblock": "^5.3",
2525
"phpstan/phpdoc-parser": "^1.2",
2626
"sensio/framework-extra-bundle": "^6.1",
27-
"symfony/asset": "6.0.*",
28-
"symfony/console": "6.0.*",
29-
"symfony/dotenv": "6.0.*",
30-
"symfony/expression-language": "6.0.*",
27+
"symfony/asset": "6.*",
28+
"symfony/console": "6.*",
29+
"symfony/dotenv": "6.*",
30+
"symfony/expression-language": "6.*",
3131
"symfony/flex": "^2",
32-
"symfony/form": "6.0.*",
33-
"symfony/framework-bundle": "6.0.*",
34-
"symfony/http-client": "6.0.*",
35-
"symfony/intl": "6.0.*",
36-
"symfony/mailer": "6.0.*",
37-
"symfony/messenger": "6.0.*",
38-
"symfony/mime": "6.0.*",
32+
"symfony/form": "6.*",
33+
"symfony/framework-bundle": "6.*",
34+
"symfony/http-client": "6.*",
35+
"symfony/intl": "6.*",
36+
"symfony/mailer": "6.*",
37+
"symfony/messenger": "6.*",
38+
"symfony/mime": "6.*",
3939
"symfony/monolog-bundle": "^3.0",
40-
"symfony/notifier": "6.0.*",
41-
"symfony/process": "6.0.*",
42-
"symfony/property-access": "6.0.*",
43-
"symfony/property-info": "6.0.*",
44-
"symfony/proxy-manager-bridge": "6.0.*",
45-
"symfony/runtime": "6.0.*",
46-
"symfony/security-bundle": "6.0.*",
47-
"symfony/serializer": "6.0.*",
48-
"symfony/string": "6.0.*",
49-
"symfony/translation": "6.0.*",
50-
"symfony/twig-bundle": "6.0.*",
51-
"symfony/validator": "6.0.*",
52-
"symfony/web-link": "6.0.*",
40+
"symfony/notifier": "6.*",
41+
"symfony/process": "6.*",
42+
"symfony/property-access": "6.*",
43+
"symfony/property-info": "6.*",
44+
"symfony/proxy-manager-bridge": "6.*",
45+
"symfony/runtime": "6.*",
46+
"symfony/security-bundle": "6.*",
47+
"symfony/serializer": "6.*",
48+
"symfony/string": "6.*",
49+
"symfony/translation": "6.*",
50+
"symfony/twig-bundle": "6.*",
51+
"symfony/validator": "6.*",
52+
"symfony/web-link": "6.*",
5353
"symfony/webapp-meta": "^1.0",
5454
"symfony/webpack-encore-bundle": "^1.12",
55-
"symfony/yaml": "6.0.*",
55+
"symfony/yaml": "6.*",
5656
"twig/extra-bundle": "^2.12|^3.0",
5757
"twig/twig": "^2.12|^3.0"
5858
},
@@ -104,14 +104,14 @@
104104
"extra": {
105105
"symfony": {
106106
"allow-contrib": false,
107-
"require": "6.0.*",
107+
"require": "6.*",
108108
"docker": false
109109
}
110110
},
111111
"require-dev": {
112-
"symfony/debug-bundle": "6.0.*",
112+
"symfony/debug-bundle": "6.*",
113113
"symfony/maker-bundle": "^1.0",
114-
"symfony/stopwatch": "6.0.*",
115-
"symfony/web-profiler-bundle": "6.0.*"
114+
"symfony/stopwatch": "6.*",
115+
"symfony/web-profiler-bundle": "6.*"
116116
}
117117
}

0 commit comments

Comments
 (0)