Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9dc5253

Browse files
committed
Fix compatibility with Symfony6
1 parentf836f6b commit9dc5253

File tree

7 files changed

+50
-7
lines changed

7 files changed

+50
-7
lines changed

‎UPGRADE-5.4.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
UPGRADE FROM 5.3 to 5.4
2+
=======================
3+
4+
HttpKernel
5+
----------
6+
7+
* Mark the class`SessionListener` as internal

‎src/Symfony/Bundle/FrameworkBundle/Resources/config/session.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@
146146
->set('session_listener', SessionListener::class)
147147
->args([
148148
service_locator([
149+
'session_factory' =>service('session.factory')->ignoreOnInvalid(),
149150
'session' =>service('.session.do-not-use')->ignoreOnInvalid(),
150151
'initialized_session' =>service('.session.do-not-use')->ignoreOnUninitialized(),
151152
'logger' =>service('logger')->ignoreOnInvalid(),

‎src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@ public function testNullSessionHandler()
581581
$this->assertNull($container->getDefinition('session.storage.factory.php_bridge')->getArgument(0));
582582
$this->assertSame('session.handler.native_file', (string)$container->getAlias('session.handler'));
583583

584-
$expected = ['session','initialized_session','logger','session_collector'];
584+
$expected = ['session_factory','session','initialized_session','logger','session_collector'];
585585
$this->assertEquals($expected,array_keys($container->getDefinition('session_listener')->getArgument(0)->getValues()));
586586
$this->assertFalse($container->getDefinition('session.storage.factory.native')->getArgument(3));
587587
}
@@ -600,7 +600,7 @@ public function testNullSessionHandlerLegacy()
600600
$this->assertNull($container->getDefinition('session.storage.php_bridge')->getArgument(0));
601601
$this->assertSame('session.handler.native_file', (string)$container->getAlias('session.handler'));
602602

603-
$expected = ['session','initialized_session','logger','session_collector'];
603+
$expected = ['session_factory','session','initialized_session','logger','session_collector'];
604604
$this->assertEquals($expected,array_keys($container->getDefinition('session_listener')->getArgument(0)->getValues()));
605605
$this->assertFalse($container->getDefinition('session.storage.factory.native')->getArgument(3));
606606
}
@@ -1618,7 +1618,7 @@ public function testSessionCookieSecureAuto()
16181618
{
16191619
$container =$this->createContainerFromFile('session_cookie_secure_auto');
16201620

1621-
$expected = ['session','initialized_session','logger','session_collector'];
1621+
$expected = ['session_factory','session','initialized_session','logger','session_collector'];
16221622
$this->assertEquals($expected,array_keys($container->getDefinition('session_listener')->getArgument(0)->getValues()));
16231623
}
16241624

@@ -1631,7 +1631,7 @@ public function testSessionCookieSecureAutoLegacy()
16311631

16321632
$container =$this->createContainerFromFile('session_cookie_secure_auto_legacy');
16331633

1634-
$expected = ['session','initialized_session','logger','session_collector','session_storage','request_stack'];
1634+
$expected = ['session_factory','session','initialized_session','logger','session_collector','session_storage','request_stack'];
16351635
$this->assertEquals($expected,array_keys($container->getDefinition('session_listener')->getArgument(0)->getValues()));
16361636
}
16371637

‎src/Symfony/Component/HttpKernel/CHANGELOG.md‎

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

4+
5.4
5+
---
6+
7+
* Mark the class`SessionListener` as internal
8+
49
5.3
510
---
611

‎src/Symfony/Component/HttpKernel/EventListener/AbstractSessionListener.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public function onKernelRequest(RequestEvent $event)
5858

5959
$request =$event->getRequest();
6060
if (!$request->hasSession()) {
61+
// This variable prevents calling `$this->getSession()` twice in case the Request (and the below factory) is cloned
6162
$sess =null;
6263
$request->setSessionFactory(function ()use (&$sess) {return$sess ??$sess =$this->getSession(); });
6364
}

‎src/Symfony/Component/HttpKernel/EventListener/SessionListener.php‎

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
*
2626
* @author Fabien Potencier <fabien@symfony.com>
2727
*
28+
* @internal since Symfony 5.4
29+
*
2830
* @final
2931
*/
3032
class SessionListenerextends AbstractSessionListener
@@ -53,10 +55,14 @@ public function onKernelRequest(RequestEvent $event)
5355

5456
protectedfunctiongetSession(): ?SessionInterface
5557
{
56-
if (!$this->container->has('session')) {
57-
returnnull;
58+
if ($this->container->has('session')) {
59+
return$this->container->get('session');
60+
}
61+
62+
if ($this->container->has('session_factory')) {
63+
return$this->container->get('session_factory')->createSession();
5864
}
5965

60-
return$this->container->get('session');
66+
returnnull;
6167
}
6268
}

‎src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
useSymfony\Component\HttpFoundation\RequestStack;
2020
useSymfony\Component\HttpFoundation\Response;
2121
useSymfony\Component\HttpFoundation\Session\Session;
22+
useSymfony\Component\HttpFoundation\Session\SessionFactory;
2223
useSymfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage;
2324
useSymfony\Component\HttpKernel\DataCollector\RequestDataCollector;
2425
useSymfony\Component\HttpKernel\Event\FinishRequestEvent;
@@ -71,6 +72,28 @@ public function testSessionIsSet()
7172
$this->assertSame($session,$request->getSession());
7273
}
7374

75+
publicfunctiontestSessionUsesFactory()
76+
{
77+
$session =$this->createMock(Session::class);
78+
$sessionFactory =$this->createMock(SessionFactory::class);
79+
$sessionFactory->expects($this->once())->method('createSession')->willReturn($session);
80+
81+
$container =newContainer();
82+
$container->set('session_factory',$sessionFactory);
83+
84+
$request =newRequest();
85+
$listener =newSessionListener($container);
86+
87+
$event =$this->createMock(RequestEvent::class);
88+
$event->expects($this->exactly(2))->method('isMainRequest')->willReturn(true);
89+
$event->expects($this->once())->method('getRequest')->willReturn($request);
90+
91+
$listener->onKernelRequest($event);
92+
93+
$this->assertTrue($request->hasSession());
94+
$this->assertSame($session,$request->getSession());
95+
}
96+
7497
publicfunctiontestResponseIsPrivateIfSessionStarted()
7598
{
7699
$session =$this->createMock(Session::class);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp