Задаването на манипулатора за запазване на сесията е неуспешно:
session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc")
Тъй като тези обратни извиквания, за които искате да се регистрирате, не съществуват:
var_dump(is_callable("sess_open")); # FALSE
Това е така, защото вашите обектни методи трябва да бъдат правилно регистрирани като обратни извиквания. Обратното извикване на обектен метод се записва под формата на масив с два елемента, първият е обектът, вторият е низ от името на метода. Пример от PHP net, който е подобен на вашия:
$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')
);
Както можете да видите, всеки метод е написан като единичен масив с първия елемент $handler
винаги.
В рамките на класа можете да използвате $this
да се отнасят към същия обект. Но преди да напишете напълно своя собствена, проверете session_set_save_handler()
PHP страница с ръководство
за информация, примери и бележки, предоставени от потребителите. Има различни начини как можете да организирате това за вашия случай.