Das Festlegen des Session-Save-Handlers schlägt fehl:
session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc")
Weil diese Callbacks, für die Sie sich registrieren möchten, nicht existieren:
var_dump(is_callable("sess_open")); # FALSE
Das liegt daran, dass Ihre Objektmethoden ordnungsgemäß als Callbacks registriert werden müssen. Ein Objektmethoden-Callback wird in Form eines Arrays mit zwei Elementen geschrieben, das erste ist das Objekt, das zweite ein String des Methodennamens. Beispiel aus dem PHP-Netz, das Ihrem ähnlich ist:
$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')
);
Wie Sie sehen können, wird jede Methode als einzelnes Array mit dem ersten Element $handler
geschrieben immer.
Innerhalb der Klasse können Sie $this
verwenden auf dasselbe Objekt verweisen. Aber bevor Sie Ihren eigenen vollständig schreiben, überprüfen Sie den session_set_save_handler()
PHP-Handbuchseite
für Infos, Beispiele und von Benutzern beigesteuerte Notizen. Es gibt verschiedene Möglichkeiten, wie Sie das für Ihren Fall organisieren können.