Nastavení obslužné rutiny uložení relace se nezdařilo:
session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc")
Protože tato zpětná volání, která chcete zaregistrovat, neexistují:
var_dump(is_callable("sess_open")); # FALSE
Je to proto, že vaše objektové metody musí být správně zaregistrovány jako zpětná volání. Zpětné volání objektové metody je zapsáno ve formě pole se dvěma prvky, prvním je objekt, druhým je řetězec názvu metody. Příklad z PHP sítě, která je podobná té vaší:
$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')
);
Jak můžete vidět, každá metoda je zapsána jako jediné pole s prvním prvkem $handler
vždy.
V rámci třídy můžete použít $this
odkazovat na stejný předmět. Než však napíšete svůj vlastní, zkontrolujte session_set_save_handler()
manuálová stránka PHP
pro informace, příklady a poznámky přidané uživateli. Existují různé způsoby, jak to můžete uspořádat pro váš případ.