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

Метод getSession

Метод getSession класса Request возвращает объект сессии для текущего запроса. Сессия позволяет сохранять данные между запросами одного пользователя. Если сессия ещё не была запущена, метод автоматически её инициализирует. Метод не принимает параметров и возвращает экземпляр SessionInterface.

Синтаксис

public function getSession(): SessionInterface

Пример

Давайте получим сессию и запишем в неё значение по ключу 'user':

<?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 ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $session = $request->getSession(); $session->set('user', 'abcde'); return new Response('session set'); } } ?>

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

"session set"

Пример

Давайте прочитаем значение из сессии по ключу 'user':

<?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 ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $session = $request->getSession(); $user = $session->get('user', 'guest'); return new Response($user); } } ?>

Результат выполнения кода, если значение было сохранено ранее:

abcde

Пример

Давайте поработаем с массивом в сессии - добавим новый элемент в список:

<?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 ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $session = $request->getSession(); $items = $session->get('items', ['a', 'b', 'c']); $items[] = 'd'; $session->set('items', $items); return new Response(implode(', ', $items)); } } ?>

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

"a, b, c, d"

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

  • класс Request,
    который представляет HTTP-запрос
  • метод hasSession,
    который проверяет наличие сессии
  • метод get,
    который возвращает параметр запроса
  • метод getClientIp,
    который возвращает IP-адрес клиента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить