Метод getId
Метод getId класса Session возвращает строковый идентификатор текущей сессии.
Этот идентификатор уникален для каждого пользователя и генерируется автоматически
при старте сессии. Метод не принимает параметров и возвращает строку.
Если сессия ещё не была запущена, метод вернёт пустую строку.
Синтаксис
public function getId(): string
Пример
Давайте получим идентификатор текущей сессии в контроллере:
<?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/id', name: 'session_id')]
public function index(Request $request): Response
{
$session = $request->getSession();
$session->start();
return new Response($session->getId());
}
}
?>
Результат выполнения кода:
"abcde12345"
Пример
Давайте сравним идентификатор до и после старта сессии:
<?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/check', name: 'session_check')]
public function check(Request $request): Response
{
$session = $request->getSession();
$before = $session->getId();
$session->start();
$after = $session->getId();
return new Response($before . ' ' . $after);
}
}
?>
Результат выполнения кода:
" abcde12345"
Пример
Давайте используем идентификатор сессии для логирования:
<?php
namespace App\Controller;
use Psr\Log\LoggerInterface;
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/log', name: 'session_log')]
public function log(Request $request, LoggerInterface $logger): Response
{
$session = $request->getSession();
$session->start();
$id = $session->getId();
$logger->info('Session id: ' . $id);
return new Response('Session id: ' . $id);
}
}
?>
Результат выполнения кода:
"Session id: abcde12345"