Skip to content

Commit 8e8d839

Browse files
feat(session): add reflash method to session (#1338)
1 parent bf4770e commit 8e8d839

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

packages/http/src/Session/Session.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@ public function flash(string $key, mixed $value): void
3535
$this->getSessionManager()->set($this->id, $key, new FlashValue($value));
3636
}
3737

38+
public function reflash(): void
39+
{
40+
foreach ($this->getSessionManager()->all($this->id) as $key => $value) {
41+
if (! ($value instanceof FlashValue))
42+
continue;
43+
44+
unset($this->expiredKeys[$key]);
45+
}
46+
}
47+
3848
public function get(string $key, mixed $default = null): mixed
3949
{
4050
$value = $this->getSessionManager()->get($this->id, $key, $default);

tests/Integration/Http/FileSessionTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,4 +118,20 @@ public function test_is_valid(): void
118118

119119
$this->assertFalse($session->isValid());
120120
}
121+
122+
public function test_session_reflash(): void
123+
{
124+
$session = $this->container->get(Session::class);
125+
126+
$session->flash('test', 'value');
127+
$session->flash('test2', ['key' => 'value']);
128+
129+
$this->assertEquals('value', $session->get('test'));
130+
131+
$session->reflash();
132+
$session->cleanup();
133+
134+
$this->assertEquals('value', $session->get('test'));
135+
$this->assertEquals(['key' => 'value'], $session->get('test2'));
136+
}
121137
}

0 commit comments

Comments
 (0)