РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
270 of 1361 menu

Метод 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"

Смотрите также

  • класс Session,
    который управляет сессией пользователя
  • метод getName,
    который возвращает имя сессии
  • метод start,
    который запускает сессию
  • метод isStarted,
    который проверяет, запущена ли сессия
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить