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
--
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php