Skip to content

Commit 319544a

Browse files
committed
feature #36364 [HttpKernel][WebProfilerBundle] Add session profiling (mtarld)
This PR was merged into the 5.2-dev branch. Discussion ---------- [HttpKernel][WebProfilerBundle] Add session profiling | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | yes | Deprecations? | no | License | MIT | Doc PR | This PR proposes to add session profiling. It provides stateless checking status and session usage backtraces. Under are screesnhots of provided profiling: ![Screenshot from 2020-04-06 13-42-41](https://user-images.githubusercontent.com/4955509/78581189-d6c32580-7833-11ea-9de5-d1e4f8e60c27.png) ![Screenshot from 2020-04-06 13-43-04](https://user-images.githubusercontent.com/4955509/78581193-d88ce900-7833-11ea-90a4-85d07c64d47e.png) ![Screenshot from 2020-04-06 17-43-17](https://user-images.githubusercontent.com/4955509/78581159-cca12700-7833-11ea-98d2-38306ec9ea37.png) ![Screenshot from 2020-04-06 17-43-35](https://user-images.githubusercontent.com/4955509/78581238-e8a4c880-7833-11ea-89e2-ff4fdea8dce5.png) Commits ------- 5dbaef8883 Add session profiling
2 parents d68c845 + b8c9e05 commit 319544a

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

Resources/config/collectors.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,16 @@
2929
->tag('data_collector', ['template' => '@WebProfiler/Collector/config.html.twig', 'id' => 'config', 'priority' => -255])
3030

3131
->set('data_collector.request', RequestDataCollector::class)
32+
->args([
33+
service('request_stack')->ignoreOnInvalid(),
34+
])
3235
->tag('kernel.event_subscriber')
3336
->tag('data_collector', ['template' => '@WebProfiler/Collector/request.html.twig', 'id' => 'request', 'priority' => 335])
3437

38+
->set('data_collector.request.session_collector', \Closure::class)
39+
->factory([\Closure::class, 'fromCallable'])
40+
->args([[service('data_collector.request'), 'collectSessionUsage']])
41+
3542
->set('data_collector.ajax', AjaxDataCollector::class)
3643
->tag('data_collector', ['template' => '@WebProfiler/Collector/ajax.html.twig', 'id' => 'ajax', 'priority' => 315])
3744

Resources/config/session.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@
9797
'session' => service('session')->ignoreOnInvalid(),
9898
'initialized_session' => service('session')->ignoreOnUninitialized(),
9999
'logger' => service('logger')->ignoreOnInvalid(),
100+
'session_collector' => service('data_collector.request.session_collector')->ignoreOnInvalid(),
100101
]),
101102
param('kernel.debug'),
102103
])

Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ public function testNullSessionHandler()
504504
$this->assertNull($container->getDefinition('session.storage.native')->getArgument(1));
505505
$this->assertNull($container->getDefinition('session.storage.php_bridge')->getArgument(0));
506506

507-
$expected = ['session', 'initialized_session', 'logger'];
507+
$expected = ['session', 'initialized_session', 'logger', 'session_collector'];
508508
$this->assertEquals($expected, array_keys($container->getDefinition('session_listener')->getArgument(0)->getValues()));
509509
}
510510

@@ -1312,7 +1312,7 @@ public function testSessionCookieSecureAuto()
13121312
{
13131313
$container = $this->createContainerFromFile('session_cookie_secure_auto');
13141314

1315-
$expected = ['session', 'initialized_session', 'logger', 'session_storage', 'request_stack'];
1315+
$expected = ['session', 'initialized_session', 'logger', 'session_collector', 'session_storage', 'request_stack'];
13161316
$this->assertEquals($expected, array_keys($container->getDefinition('session_listener')->getArgument(0)->getValues()));
13171317
}
13181318

0 commit comments

Comments
 (0)