NAME
MVC::Neaf::X::Session::SQL - SQL-based session backend for Not Even A Framework.
DESCRIPTION
Store session data in a SQL table. Consider a pre-existing DB connection and a low-traffic site where having additional session storage (e.g. key-value) would be an overkill.
SYNOPSIS
my $session_engine = MVC::Neaf::X::Session::SQL->new (
dbh => $my_db_conn,
table => 'session',
id_as => 'session_name',
content_as => 'json_data', # optional but recommended
expire_as => 'expires', # optional, unix timestamp
mapped_cols => [ 'user_id', ... ], # optional
);
METHODS
new (%options)
%options may include
dbh (required) - database connection to use, see DBI.
table (required) - name of table to use for sessions.
id_as (required) - name of session id column. Must accept long arbitrary strings.
content_as - name of column containing encoded session data. Must accept long arbitrary strings.
expire_as - name of column storing expiration date as a Unix timestamp (must accept integer number).
mapped_cols - array of session fields that are mapped into database columns. The field name MUST be equal to column name.
At least one of content_as and mapped_cols MUST be present, even though it could be technically possible to use sessions with id and timestamp only.
store( $id, $str, $hash )
Store data in database, using $hash as additional indexed fields if any defined.
fetch( $id )
Fetch data from table.
Returns { data => stringified_data, orevvide => { individual_fields } }
LICENSE AND COPYRIGHT
This module is part of MVC::Neaf suite.
Copyright 2016-2023 Konstantin S. Uvarin khedin@cpan.org
.
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 http://dev.perl.org/licenses/ for more information.