Det går inte att ställa in sessionssparhanteraren:
session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc")
Eftersom dessa återuppringningar du vill registrera dig för inte existerar:
var_dump(is_callable("sess_open")); # FALSE
Det beror på att dina objektmetoder måste registreras korrekt som återuppringningar. En objektmetodåteranrop skrivs i form av en array med två element, den första är objektet, den andra en sträng av metodnamnet. Exempel från PHP-nät som liknar ditt:
$handler = new FileSessionHandler();
session_set_save_handler(
array($handler, 'open'),
array($handler, 'close'),
array($handler, 'read'),
array($handler, 'write'),
array($handler, 'destroy'),
array($handler, 'gc')
);
Som du kan se skrivs varje metod som en enda array med det första elementet $handler
alltid.
Inifrån klassen kan du använda $this
att hänvisa till samma objekt. Men innan du skriver ditt eget, kontrollera session_set_save_handler()
PHP-manualsida
för info, exempel och användarbidrag. Det finns olika sätt hur du kan organisera det för ditt ärende.