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.

