In the process of using 3rd party (django) session management within php, i need to have custom serialization functions in order to encode/decode it properly to fit django's salted storage of session data. Currently, it appears that the ini setting session.serialize_handler can either be php or wddx.
Is there any way to set up a custom serialize_handler as a class?
I'd like to have something like this:
class CustomSessionSerializer {
public static function serialize($data){
// Serializes raw data
}
public static function unserialize($sdata){
// Deserializes serialized data
}
}
and have it used by my custom SessionHandler.
igbinary
project on github seems to add a custom serialize_handler as a php extension. I'm curious if custom serialization could not happen in another place than as a C extension.
I've been dealing with this problem, and there is a solution for this.
The idea is that although you can easily modify the session.serializer_handler
from PHP, you can empty the contents of $ _SESSION
before running the serializer.
Using a class for the administration of session (like Zend\Session\SessionManager) in which is registered with register_shutdown_function
a function, in which is passed back to save_handler
a copy of $ _SESSION
content and then $ _SESSION
is empty.
So that the serializer runs but on empty string, and the custom serialization is executed on your custom save_handler
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With