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

Метод invalidate класса Session

Метод invalidate класса Session полностью аннулирует текущую сессию. Он удаляет все данные, хранящиеся в сессии, и генерирует новый идентификатор сессии. Метод не принимает параметров и возвращает true в случае успеха.

Метод удобно использовать при выходе пользователя из системы, когда необходимо гарантированно очистить все данные сессии и предотвратить дальнейшее использование старого идентификатора.

Синтаксис

public function invalidate(int $lifetime = null): bool

Пример

Давайте создадим сессию, запишем в неё данные, а затем аннулируем её:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentRoutingAttributeRoute; class SessionController extends AbstractController { #[Route('/session/invalidate', name: 'session_invalidate')] public function invalidate(Request $request): Response { $session = $request->getSession(); $session->set('user', 'abcde'); $session->set('role', 'admin'); $session->invalidate(); $res = $session->all(); return new Response(json_encode($res)); } } ?>

Результат выполнения кода:

[]

Пример

Давайте проверим, что после аннулирования сессии данные недоступны:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentRoutingAttributeRoute; class SessionController extends AbstractController { #[Route('/session/check', name: 'session_check')] public function check(Request $request): Response { $session = $request->getSession(); $session->set('user', 'abcde'); $before = $session->has('user'); $session->invalidate(); $after = $session->has('user'); return new Response(json_encode([ 'before' => $before, 'after' => $after, ])); } } ?>

Результат выполнения кода:

{"before":true,"after":false}

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

  • класс Session,
    который управляет данными сессии
  • метод clear,
    который очищает все данные сессии
  • метод migrate,
    который переносит данные в новый идентификатор сессии
  • метод remove,
    который удаляет один элемент из сессии
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить