Метод all класса Session
Метод all класса Session возвращает все данные,
сохранённые в текущей сессии, в виде ассоциативного массива.
Метод не принимает параметров и возвращает массив,
где ключами являются имена сохранённых значений,
а значениями - сами данные.
Синтаксис
public function all(): array
Пример
Давайте сохраним несколько значений в сессию,
а затем получим их все через метод all:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class SessionController extends AbstractController
{
#[Route('/session/all', name: 'session_all')]
public function all(Request $request): Response
{
$session = $request->getSession();
$session->set('name', 'abcde');
$session->set('role', 'user');
$session->set('count', 5);
$res = $session->all();
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
{"name":"abcde","role":"user","count":5}
Пример
Давайте сохраним вложенный массив и получим его
через метод all:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class SessionController extends AbstractController
{
#[Route('/session/nested', name: 'session_nested')]
public function nested(Request $request): Response
{
$session = $request->getSession();
$session->set('user', [
'login' => 'abcde',
'active' => true,
]);
$session->set('items', [1, 2, 3, 4, 5]);
$res = $session->all();
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
{"user":{"login":"abcde","active":true},"items":[1,2,3,4,5]}
Пример
Если в сессии нет данных, метод all вернёт пустой массив:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class SessionController extends AbstractController
{
#[Route('/session/empty', name: 'session_empty')]
public function empty(Request $request): Response
{
$session = $request->getSession();
$session->clear();
$res = $session->all();
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
[]