MVC::Neaf::X::Session::File - File-based sessions for Not Even A Framework.


This module implements session storage, as described in MVC::Neaf::X::Session.

It will store session data inside a single directory. The file format is JSON but MAY change in the future.

Uses flock() to avoid collisions.

If session_ttl was specified, old session files will be deleted.

NOTE The file-locking MAY be prone to race conditions. If you want real secure expiration, please specify expiration INSIDE the session, or use a database.


    use strict;
    use warnings;
    use MVC::Neaf;
    use MVC::Neaf::X::Session::File;

        engine => MVC::Neaf::X::Session::File->new( dir => $mydir )
    # ... define your application here


new( %options )

Constructor. %options may include:

  • session_ttl - how long to store session data.

  • dir (required) - where to store files.

save_session( $id, \%data )

Save session data to a file.

load_session( $id )

Load session data from file. Will DELETE session if session_ttl was specified and exceeded.

delete_session( $id )

Remove a session, if such session is stored at all.

atomic_read( $id )

Internal mechanism beyond load_file.

atomic_write( $id, $content )

Internal mechanism beyond save_session.

get_file_name( $id )

Convert id into filename.

encode_content( $data )

decode_content( $raw )

Currently JSON is used.


This module is part of MVC::Neaf suite.

Copyright 2016-2019 Konstantin S. Uvarin

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See for more information.