Skip to content

Commit dfee127

Browse files
committed
SHORE: flash session optimization
1 parent 3f88607 commit dfee127

4 files changed

Lines changed: 41 additions & 17 deletions

File tree

Helpers/FlashSessionHelper.php

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
3+
/*declare(strict_types=1);*/
4+
5+
namespace Hleb\Helpers;
6+
7+
/** @internal */
8+
class FlashSessionHelper
9+
{
10+
/**
11+
* Preparing sessions for flash messages.
12+
*
13+
* Подготовка сессий для работы флеш-сообщений.
14+
*
15+
* @internal
16+
*/
17+
public static function update(array &$session, string $id): void
18+
{
19+
if (\is_array($session[$id])) {
20+
foreach ($session[$id] as $key => &$data) {
21+
$data['reps_left']--;
22+
if ($data['reps_left'] < 0) {
23+
unset($session[$id][$key]);
24+
continue;
25+
}
26+
if (isset($data['new'])) {
27+
$data['old'] = $data['new'];
28+
$data['new'] = null;
29+
}
30+
if (\is_null($data['old'])) {
31+
unset($session[$id][$key]);
32+
}
33+
}
34+
}
35+
}
36+
}

HlebBootstrap.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public function __construct(?string $publicPath = null, array $config = [], ?Log
109109

110110
// The current version of the framework.
111111
// Текущая версия фреймворка.
112-
\defined('HLEB_CORE_VERSION') or \define('HLEB_CORE_VERSION', '2.1.16');
112+
\defined('HLEB_CORE_VERSION') or \define('HLEB_CORE_VERSION', '2.1.17');
113113

114114
$this->logger = $logger;
115115

Init/Connectors/HlebConnector.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ final class HlebConnector
8585
'Hleb\Helpers\ClassDataInFile' => '/Helpers/ClassDataInFile.php',
8686
'Hleb\Helpers\DirectoryCleaner' => '/Helpers/DirectoryCleaner.php',
8787
'Hleb\Helpers\DirectoryInspector' => '/Helpers/DirectoryInspector.php',
88+
'Hleb\Helpers\FlashSessionHelper' => '/Helpers/FlashSessionHelper.php',
8889
'Hleb\Helpers\DirectoryHelper' => '/Helpers/DirectoryHelper.php',
8990
'Hleb\Helpers\NameConverter' => '/Helpers/NameConverter.php',
9091
'Hleb\Helpers\HostHelper' => '/Helpers/HostHelper.php',

Main/ProjectLoader.php

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Hleb\Constructor\Data\SystemSettings;
1111
use Hleb\Constructor\DI\DependencyInjection;
1212
use Hleb\CoreProcessException;
13+
use Hleb\Helpers\FlashSessionHelper;
1314
use Hleb\Helpers\ReflectionMethod;
1415
use Hleb\Helpers\RouteHelper;
1516
use Hleb\HttpException;
@@ -314,22 +315,8 @@ private static function initSession(bool|null $disabledInRoute): void
314315
*/
315316
private static function updateSession(array &$session): void
316317
{
317-
$id = '_hl_flash_';
318-
if (isset($session[$id])) {
319-
foreach ($session[$id] as $key => &$data) {
320-
$data['reps_left']--;
321-
if ($data['reps_left'] < 0) {
322-
unset($session[$id][$key]);
323-
continue;
324-
}
325-
if (isset($data['new'])) {
326-
$data['old'] = $data['new'];
327-
$data['new'] = null;
328-
}
329-
if (\is_null($data['old'])) {
330-
unset($session[$id][$key]);
331-
}
332-
}
318+
if (!empty($session['_hl_flash_'])) {
319+
FlashSessionHelper::update($session, '_hl_flash_');
333320
}
334321
}
335322

0 commit comments

Comments
 (0)