Het instellen van de sessiebewaarhandler mislukt:
session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc")
Omdat deze callbacks waarvoor u zich wilt registreren niet bestaan:
var_dump(is_callable("sess_open")); # FALSE
Dat komt omdat uw objectmethoden correct moeten worden geregistreerd als callbacks. Een objectmethode-callback wordt geschreven in de vorm van een array met twee elementen, de eerste is het object, de tweede een string van de methodenaam. Voorbeeld van PHP-net dat vergelijkbaar is met het uwe:
$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')
);
Zoals je kunt zien, wordt elke methode geschreven als een enkele array met het eerste element $handler
altijd.
Vanuit de klas kun je $this
. gebruiken verwijzen naar hetzelfde object. Maar voordat u uw eigen volledig schrijft, controleert u de session_set_save_handler()
PHP-handleiding
voor info, voorbeelden en opmerkingen van gebruikers. Er zijn verschillende manieren om dat voor uw zaak te organiseren.