Symfony - Çerezler ve Oturum Yönetimi

Symfony HttpFoundation bileşeni, nesne tabanlı bir şekilde tanımlama bilgisi ve oturum yönetimi sağlar. Cookieistemci tarafında veri depolama sağlar ve yalnızca küçük miktarda veriyi destekler. Genellikle, alan adı başına 2KB'dir ve tarayıcıya bağlıdır.Sessionsunucu tarafında veri depolama sağlar ve büyük miktarda veriyi destekler. Bir Symfony web uygulamasında nasıl çerez ve oturum oluşturulacağını görelim.

Kurabiye

Symfony, bir çerez öğesi oluşturmak için Çerez sınıfı sağlar. 24 saat içinde geçerliliği sona eren bir çerez rengi oluşturalım.blue. Çerez sınıfının yapıcı parametresi aşağıdaki gibidir.

  • isim (type: string) - çerez adı
  • değer (tür: dize) - çerez değeri
  • expire (tür: tamsayı / dizge / tarihsaat) - sona erme bilgisi
  • yol (tür: dize) - tanımlama bilgisinin bulunduğu sunucu yolu
  • domain (type: string) - çerezin mevcut olduğu alan adresi
  • güvenli (tür: boolean) - çerezin HTTPS bağlantısında iletilmesinin gerekip gerekmediği
  • httpOnly (type: boolean) - çerezin yalnızca HTTP protokolünde mevcut olup olmadığı
use Symfony\Component\HttpFoundation\Cookie;  
$cookie = new Cookie('color', 'green', strtotime('tomorrow'), '/', 
   'somedomain.com', true, true);

Symfony ayrıca aşağıdaki dize tabanlı tanımlama bilgisi oluşturma seçeneğini sunar.

$cookie = Cookie::fromString('color = green; expires = Web, 4-May-2017 18:00:00 +0100; 
path=/; domain = somedomain.com; secure; httponly');

Şimdi, oluşturulan tanımlama bilgisinin http yanıt nesnesinin başlığına aşağıdaki gibi eklenmesi gerekir.

$response->headers->setCookie($cookie);

Çerezi almak için aşağıdaki gibi Request nesnesini kullanabiliriz.

$cookie = $request->cookie->get('color');

Buraya, request->cookie tipte PropertyBag ve bunu PropertyBag yöntemlerini kullanarak değiştirebiliriz.

Oturum, toplantı, celse

Symfony, SessionInterface arabirimini uygulayan bir Session sınıfı sağlar. Önemli oturum API'leri aşağıdaki gibidir,

start - Seansı başlatır.

Session $session = new Session(); 
$session->start();

invalidate - Tüm oturum verilerini temizler ve oturum kimliğini yeniden oluşturur.

set - Bir anahtar kullanarak oturumdaki verileri depolar.

$session->set('key', 'value');

Oturum değerindeki herhangi bir veriyi, karmaşık nesnelere basit tam sayı olarak kullanabiliriz.

get - Anahtarı kullanarak oturumdan verileri alır.

$val = $session->get('key');

remove - Oturumdan bir anahtarı kaldırır.

clear - Bir oturum verilerini kaldırır.

FlashBag

Oturum, adında başka bir yararlı özellik sağlar FlashBag. Yalnızca sayfa yeniden yönlendirme sırasında verileri tutan oturumun içindeki özel bir kapsayıcıdır. Http yönlendirmelerinde kullanışlıdır. Bir sayfaya yeniden yönlendirmeden önce, veriler normal bir oturum kabı yerine FlashBag'e kaydedilebilir ve kaydedilen veriler sonraki istekte (yeniden yönlendirilen sayfa) kullanılabilir. Ardından veriler otomatik olarak geçersiz kılınacaktır.

$session->getFlashBag()->add('key', 'value');  
$session->getFlashBag()->get('key');