نعم. افتراضيًا تحفظ PHP الجلسات في ملفات، لكن يمكن ضبطها لتحفظها في قاعدة البيانات أو في Redis أو Memcached.
كيف؟
بكتابة معالج جلسات مخصص يطبّق الواجهة SessionHandlerInterface:
class DbSessionHandler implements SessionHandlerInterface {
// open, close, read, write, destroy, gc
}
session_set_save_handler(new DbSessionHandler($pdo), true);
session_start();
ومع Redis يكفي غالبًا تعديل الإعدادات:
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"
لماذا نفعل ذلك؟
عندما يعمل الموقع على أكثر من خادم، يجب أن تكون الجلسات في مكان مشترك، وإلا سيخرج المستخدم من حسابه كلما انتقل طلبه لخادم آخر.