Re: session cleanup event function

From: Date: Thu, 26 Jan 2017 09:28:03 +0000
Subject: Re: session cleanup event function
References: 1  Groups: php.webmaster 
Request: Send a blank email to php-webmaster+get-25558@lists.php.net to get a copy of this message
On 26.01.2017 at 00:53, Gordon Rouse wrote: > I am wondering if it would be possible to have a session cleanup event hook > in future versions of PHP. > > I imaging that it would work like this: > > <?php > > include( 'inc/my_functions_or_classes_library.inc.php' ); > > session_start(); > > function _my_session_cleaup( $_session_id ){ > > file_put_contents( 'log/session_clean.log', 'cleaning session up id; ' > ... $_session_id ); > > //access session variable cart_id > > file_put_contents( 'log/session_clean.log', 'cleaning session cart; ' > ... $_SESSION['cart_id'] ); > > //do something here that removes the cart from the database etc... > } > > > session_cleanup_register( ' _my_session_cleaup', $_store_includes=true, > $log_to_file='log/session_clean-%Y-%m-%d.log' ); > > ?> > > As I see it, the process that cleans up old sessions in the background > would find the function serialized in the session file along with some > information about the environment in which the function was set. If the > function was registered with $_store_includes=true, then any include files > that were loaded at the time of the registration will be remembered and > stored in the session file. > PHP would then generate a temporary console script and run it as if in the > same directory as when the registration was done. Any output would append > to or open the $log_to_file path with date parameters dedeuced . It would > include the files that were included when registered (if > $_store_includes=true) and run the following: > > !#/usr/bin/php > <?php > > //get the session file and unserialize its content and set to $_SESSION and > make it global > > > include( 'inc/my_functions_or_classes_library.inc.php' ); //found from the > session file environment settings stored > > function _my_session_cleaup( $_session_id ){ > > echo 'cleaning session up id; ' . $_session_id; > > //access session variable cart_id > > echo 'cleaning session cart; ' . $_SESSION['cart_id']; > > //do something here that removes the cart from the database etc... > } > > _my_session_cleaup( SESSION_ID_BEING_CLEANEDUP ); > > ?> > > Once completed, the session cleanup would destroy the session file. This mailing list is for discussing and maintaining the php.net web infrastructure. Please file feature requests at <https://bugs.php.net/>. -- Christoph M. Becker

« previous php.webmaster (#25558) next »