Özel Oturum Eylemcisi
Veritabanlarını saklama alanı olarak kullanmak için veya başka bir saklama
yöntemi kullanmak için session_set_save_handler()
işleviyle kullanıcı seviyesinde bir saklama işlevleri kümesi tanımlamak
gerekir.
SessionHandlerInterface arayüzü kullanılarak oturum
işleyicileri oluşturabilir veya SessionHandler
sınıfı miras alınarak PHP'nin dahili işleyicileri genişletetilebilir.
session_set_save_handler() içinde belirtilen geri
çağırımlar, bir oturumun yaşam döngüsü boyunca PHP tarafından çağrılan
yöntemlerdir: open
, read
,
write
ve close
. Temizlik
görevlerinde, bir oturumu silmek için destroy
ve düzenli olarak çöpleri toplamak için gc
.
Bu nedenle, PHP'ye oturum kaydetme işleyicileri daima gereklidir.
Öntanımlı işleyici, genellikle dahili dosyaları kaydetme işleyicisidir.
Özel bir kaydetme işleyicisi, session_set_save_handler()
kullanılarak atanabilir. Bunun yanında, dahili kaydetme işleyicileri
sqlite
, memcache
ve
memcached
gibi PHP eklentileri tarafından da sağlanır
ve session.save_handler ile
atanabilir.
Oturum başladığında, PHP dahili olarak oturum açma işleyicisini, ardından da
depolamaya olduğu gibi aktarılmak üzere kodlanmış bir dizge döndüren okuma
geriçağrım işlevini çağırır. Okuma geriçağırım işlevi kodlanmış dizgeyi
döndürdüğünde, PHP dizgeyi çözer ve ortaya çıkan diziyi
$_SESSION süper küreseline aktarır.
PHP kapandığında (veya session_write_close()
çağrıldığında), PHP dahili olarak $_SESSION süper
küreselini kodlayacak ve bunu oturum kimliği ile birlikte yazma
geriçağrımına iletecektir. Yazma geriçağırımı bittikten sonra, PHP dahili
olarak kapatma geriçağırım işleyicisini çağırır.
Bir oturum özellikle yok edildiğinde, PHP oturum kimliğini aktararak
yoketme işleyicisini çağırır.
PHP, bir oturumun belirlenen azami yaşam süresine göre herhangi bir oturum
kaydını sona erdirmek için zaman zaman çöp toplama geriçağrımı yapar. Bu
işlev, kalıcı depolamada, belirlenen yaşam süresinden daha uzun süre
erişilen tüm kayıtları siler.