Laravel: Oturumlar (Sessions)

Giriş

Oturumlar kullanıcı istekleri hakkında bilgi saklamaya imkan sağlamanın bir yoludur. Laravel, sunucu taraflı kullanılan oturum çeşitleri sunar. Memcached, Redis, Database gibi popüler suncu taraflı çözümler Laravel’e dahil edilmiştir.

Yapılandırma

Oturum yapılandırma dosyası config/session.php konumundır. Dosya içerisinde seçenekler iyice açıklanmıştır. Laravel varsayılan olarak bir çok uygulama için iyi şekilde çalışan file oturum sürücüsü kullanılması için yapılandırılmıştır. Yayınlama durumunda daha hızlı oturum performansı sağlayan memcached veya redis tercih edebilirsiniz.

Oturum sürücüsü her istekte saklanan oturum bilgisini tanımlar. Laravel ile bir kaç sürücü dahil edilmiştir.

  • file – oturumları storage/framework/sessions içinde saklanır.
  • cookie – oturumlar şifreli bir şekilde cookie ile saklanır.
  • database – oturumlar uygulamanız tarafından veritabanında saklanır.
  • memcached / redis – oturumlar ön bellek tabanlı saklanır.
  • array / redis – oturumlar basit bir PHP dizisinde sakanır, kalıcı değildir.

Not: Array sürücüsü test çalıştırmak gibi kalıcı oturum gerektirmeyen kullanımlar için uygundur.

Sürücü Gereksinimleri

Veritabanı (Database)

Veritabanı oturum sürücüsü kullanıldığında, bir tablo oluşturmaya ihtiyacınız olacaktır. Örnek:

Bunu oluşturmak için session:table Artisan komutunu da kullanabilirsiniz!

Redis

Redis oturum sürücüsünü Laravel ile kullanmadan önce, predis/predis paketini (~1.0) Composer yoluyla yüklemeniz gerekir.

Diğer Oturum Önerileri

Laravel Framework flash oturum anahtarını kendi içinde kullanır ve bu isimde bir öğe atmamanız gerekir.

Eğer tüm saklanan oturum verileri şifreli olacaksa, encrypt yapılandırma ayarını true ayarlayın.

Temel Kullanım

Oturuma Erişim

Öncelikle, oturuma ulaşalım. Oturum örneğine HTTP Request yoluyla erişebiliriz. Kontrolcü metodlarının bağımlılıkları Laravel Servis Taşıyıcısı yoluyla yerleştirildiğini hatırlayın.

Oturumdan bir değer getirdiğinizde, varsayılan değer olarak geçirebileceğiz değeri ikinci argüman olarak geçirebilirsiniz. Bu varsayılan değer belirtilen anahtar oturumda bulunanamadınğında döndürülür.

Oturumdan tüm bilgileri getirmeyi dilerseniz, all metodunu kullanabilirsiniz.

Oturumda bilgi sakmak veya getirmek için genel session PHP fonksiyonunu kullanaiblirsiniz.

Bir Öğenin Oturumda Olup Olmadığını Belirlenme

has metodu bir öğenin oturumda olup olmadığını kontorl etmek için kullanılabilir. Bu metod öğe var ise true döner:

Oturumda Bilgi Saklanma

Oturum örneğine eriştiğinizde, oturumdaki bilgilerinizle etkileşim için çeşitli işlevler kullanabilirsiniz. Örneğin, put metodu oturumunuzda yeni bilgi parçaları saklar:

Oturum Dizi Değerlerine Ekleme Yapmak

push metodu bir dizi olan oturum değişkenine yeni bir değer eklemek için kullanılabilir. Örneğin, bir dizi olan takım isiimlerinizde user.teams anahtarı varsa, şu şekilde diziye yeni bir değer ekleyebilirsiniz:

Bir Öğe Getirme Ve Silme

pull metodu oturumunuzdan bir öğeyi getirir ve siler.

Oturumdan Bir öğeyi Silme

forget metodu oturumdaki bilgiden bazı kısımlarını siler. Oturumdan tüm bilgileri silmek isterseniz flush metodunu kullanabilirsiniz:

Oturum ID’sini Tekrar Oluşturma

Oturum ID’sini tekrar oluşturmaya ihtiyacınız varsa regenerate metodunu kullanabilirisiniz:

Anlık Veriler

Bazen yalnızca bir sonraki istek için oturumda bir öğe saklamayı dilersiniz. Bunu flash metodunu kullanarak yapabilirsiniz. Bu metod oturumdaki veriyi bir yalnızca sonraki HTTP isteği sırasında kullanılabilir yapacak ve sonrasında bu veri silinecek. Anlık verinin başlıca kullanımın alanı kısa süreli durum mesajları içindir.

Anlık verilerinizi daha fazla istekte tutmak isterseniz, bir ek istek için daha tüm oturum verilerinizi tutan reflash metodunu kullanabilirsiniz. Eğer yalnızca belirli bir anlık veriyi tutmak isterseniz keep metodunu kullabilirsiniz.