Метод withPath класса Cookie
Метод withPath класса Cookie возвращает новый объект cookie с изменённым путём, по которому браузер будет отправлять cookie на сервер. Первым параметром передаётся строка с новым путём. Исходный объект при этом не изменяется - метод работает по принципу неизменяемости, возвращая копию с новым значением.
Синтаксис
public function withPath(string $path): static
Пример
Давайте создадим cookie и зададим ей путь '/admin':
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\HttpFoundation\Response;
class CookieController extends AbstractController
{
public function index(): Response
{
$cookie = Cookie::create('user', 'abcde');
$cookie = $cookie->withPath('/admin');
$response = new Response('cookie set');
$response->headers->setCookie($cookie);
return $response;
}
}
?>
Результат выполнения кода:
"cookie set"
Пример
Давайте проверим, что исходный объект cookie не изменяется после вызова метода:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\HttpFoundation\Response;
class CookieController extends AbstractController
{
public function index(): Response
{
$cookie = Cookie::create('user', 'abcde');
$newCookie = $cookie->withPath('/admin');
echo $cookie->getPath();
echo $newCookie->getPath();
return new Response();
}
}
?>
Результат выполнения кода:
"/"
"/admin"
Пример
Давайте зададим cookie путь '/', чтобы она была доступна на всём сайте:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\HttpFoundation\Response;
class CookieController extends AbstractController
{
public function index(): Response
{
$cookie = Cookie::create('user', 'hello')
->withPath('/')
->withSecure(true);
$response = new Response('cookie set');
$response->headers->setCookie($cookie);
return $response;
}
}
?>
Результат выполнения кода:
"cookie set"
Смотрите также
-
класс
Cookie,
который представляет объект cookie -
метод
create,
который создаёт новый объект cookie -
метод
withValue,
который задаёт значение cookie -
метод
withDomain,
который задаёт домен cookie