Метод start
Метод start класса Session запускает сессию.
Он вызывается автоматически при первом обращении к данным сессии,
но может быть вызван и вручную. Метод не принимает параметров
и возвращает true, если сессия была успешно запущена,
или false, если сессия уже была активна.
Синтаксис
public function start(): bool
Пример
Давайте запустим сессию вручную и проверим результат:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Routing\Attribute\Route;
class SessionController extends AbstractController
{
#[Route('/session/start', name: 'session_start')]
public function start(SessionInterface $session): Response
{
$res = $session->start();
return new Response($res ? 'started' : 'already started');
}
}
?>
Результат выполнения кода:
"started"
Пример
Давайте вызовем метод start дважды и посмотрим на результат:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Routing\Attribute\Route;
class SessionController extends AbstractController
{
#[Route('/session/start-twice', name: 'session_start_twice')]
public function startTwice(SessionInterface $session): Response
{
$first = $session->start();
$second = $session->start();
return new Response(
'first: ' . ($first ? 'true' : 'false') .
', second: ' . ($second ? 'true' : 'false')
);
}
}
?>
Результат выполнения кода:
"first: true, second: false"
Смотрите также
-
класс
Session,
который управляет данными сессии -
метод
isStarted,
который проверяет, запущена ли сессия -
метод
save,
который сохраняет данные сессии -
метод
invalidate,
который очищает и пересоздаёт сессию