The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dancer2::Session::DBIC - DBIx::Class session engine for Dancer2

VERSION

0.006

DESCRIPTION

This module implements a session engine for Dancer2 by serializing the session, and storing it in a database via DBIx::Class.

JSON was chosen as the serialization format, as it is fast, terse, and portable.

SYNOPSIS

Example configuration:

    session: "DBIC"
    engines:
      session:
        DBIC:
          dsn:      "DBI:mysql:database=testing;host=127.0.0.1;port=3306" # DBI Data Source Name
          schema_class:    "Interchange6::Schema"  # DBIx::Class schema
          user:     "user"      # Username used to connect to the database
          password: "password"  # Password to connect to the database
          resultset: "MySession" # DBIx::Class resultset, defaults to Session
          id_column: "my_session_id" # defaults to sessions_id
          data_column: "my_session_data" # defaults to session_data

SESSION EXPIRATION

A timestamp field that updates when a session is updated is recommended, so you can expire sessions server-side as well as client-side.

This session engine will not automagically remove expired sessions on the server, but with a timestamp field as above, you should be able to to do this manually.

ATTRIBUTES

schema_class

DBIx::Class schema class, e.g. Interchange6::Schema.

resultset

DBIx::Class resultset, defaults to Session.

id_column

Column for session id, defaults to sessions_id.

data_column

Column for session data, defaults to session_data.

dsn

DBI dsn to connect to the database.

user

Database username.

password

Database password.

schema

DBIx::Class schema.

METHODS

_flush

Write the session to the database. Returns the session object.

_retrieve($id)

Look for a session with the given id.

Returns the session object if found, undef if not. Dies if the session was found, but could not be deserialized.

_destroy()

Remove the current session object from the database.

SEE ALSO

Dancer2, Dancer2::Session

AUTHOR

Stefan Hornburg (Racke) <racke@linuxia.de>

ACKNOWLEDGEMENTS

Based on code from Dance::Session::DBI written by James Aitken and code from Dance::Plugin::DBIC written by Naveed Massjouni.

COPYRIGHT AND LICENSE

This software is copyright (c) Stefan Hornburg.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.