Sanırım gerçekten bir kaç seçeneğiniz var - gerçekten bir çerezde depolamaya çalıştığınız şeye ve işlemin hangi noktasında okumaya ihtiyacınız olduğuna bağlı.
services:
a_service:
class: Acme\DemoBundle\RequestServiceClass
arguments: [@request]
scope: request
:
Ben
services.yml içinde hizmetinizi tanımlayın ... İlk seçenek bu isteği erişmek vardır ve döndüren bir yanıt oluşturur, bir hizmet yaratmaktır önermek
Sınıfınız:
//Acme\DemoBundle\RequestServiceClass.php
class RequestServiceClass
{
private $request;
public function __construct(Request $request){
$this->request= $request;
}
public function doSomething(){
// get cookie
$value = $this->request->cookies->get('cookie');
// create cookie
$cookie = new Cookie('cookie', 'value', time() + 3600 * 24 * 7);
// create response
$response = new Response();
// set cookie in response
$response->headers->setCookie($cookie);
return $response;
}
}
Sonra hizmeti kullanmak için bu
böyle bir şey yapmak
public myAction()
{
$response = $this->get('a_service')->doSomething();
return $response;
}
bunu yapmanın başka yolu ... bir kernel.response
dinleyici oluşturmaktır onun böyle yapılır:
services.yml bir hizmet ekleyin:
services:
a_listener:
class: Acme\DemoBundle\MyListener
tags:
- { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }
telsizinde sınıfı şöyle :
2 yöntem arasındaki fark bilgilenme sürecinin bir anda kullanılabilir ne
// Acme\DemoBundle\MyListener.php
class MyListener
{
public function onKernelResponse(FilterResponseEvent $event)
{
$response = $event->getResponse();
$request = $event->getRequest();
// get cookie
$value = $request->cookies->get('cookie');
// create cookie
$cookie = new Cookie('cookie', 'value', time() + 3600 * 24 * 7);
// set cookie in response
$response->headers->setCookie($cookie);
}
}
- örneğin hizmet geçmek ... RESPO her şeye erişebilir nse dinleyicinin istek ve cevaptaki her şeye erişimi vardır - yanıtın beklendiği gibi olup olmadığını (yani format veya içerik) kontrol edebilir ve buna göre bir çerez kurabilirsiniz. bazı yararlı belgelerine
bazı bağlantılar okumak için:
Yanıt etkinliği dinleyicisi mükemmel bir çözüm gibi görünüyor! Teşekkürler. – Hubro