diff --git a/reference/session/examples.xml b/reference/session/examples.xml index 1b05ad0889..9ad7ee1e61 100644 --- a/reference/session/examples.xml +++ b/reference/session/examples.xml @@ -243,6 +243,40 @@ here. will need to use session_set_save_handler to create a set of user-level storage functions. + + The callbacks specified in session_set_save_handler are methods + called by PHP during the life-cycle of a session: open, read, write and close and for + the houskeping tasks of deleting stored sessions and periodic garbage collection. + + + Therefor, PHP always requires session save handlers. The default is usually the + internal 'files' save handler, but can be overriden using + session_set_save_handler if you need anything other than PHP's + internal handlers. Alternative internal save handlers can also be provided by PHP extensions, + such as sqlite, memcache and memcached. + + + When the session starts, PHP will call the open() handler followed by the read() handler + which should return an encoded string extactly as it was originally passed for storage. + Once the read() handler returns the encoded string, PHP will decode it and then populate + the resulting array into the $_SESSION superglobal. + + + When PHP shuts down (or when session_write_close is called), + PHP will encode the $_SESSION superglobal into a specially serialized string and pass this + along with the session ID to the the write() callback. + After write() PHP will invoke the close() handler. + + + When a session is specifically destroyed, PHP will call the + destroy() handler with the session ID. + + + PHP will call gc() from time to time to expire any session + records according to the set max lifetime of a session. This routine + should delete all records from persistent storage which were last + accessed longer than the $lifetime. +