-
-
22 Sep 2018 08:55:44 UTC
- Distribution: Dancer2-Session-DBIC
- Module version: 0.120
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Repository
- Issues
- Testers (652 / 0 / 9)
- Kwalitee
Bus factor: 1- 79.82% Coverage
- License: perl_5
- Activity
24 month- Tools
- Download (11.64KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- DBICx::Sugar
- DBIx::Class
- Dancer2
- JSON::MaybeXS
- Module::Runtime
- Scalar::Util
- Try::Tiny
- namespace::clean
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
- NAME
- VERSION
- DESCRIPTION
- SYNOPSIS
- SESSION EXPIRATION
- ATTRIBUTES
- METHODS
- SEE ALSO
- AUTHOR
- ACKNOWLEDGEMENTS
- COPYRIGHT AND LICENSE
NAME
Dancer2::Session::DBIC - DBIx::Class session engine for Dancer2
VERSION
0.120
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 default 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 serializer: "YAML" # defaults to JSON
Or if you are already using Dancer2::Plugin::DBIC and want to use its existing configuration for a database section named 'default' with all else set to default in this module then you could simply use:
session: "DBIC" engines: session: DBIC: db_connection_name: default
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.
db_connection_name
The Dancer2::Plugin::DBIC database connection name.
If this option is provided then "schema_class", "dsn", "user" and "password" are all ignored.
resultset
DBIx::Class resultset, defaults to
Session
.id_column
Column for session id, defaults to
sessions_id
.If this column is not the primary key of the table, it should have a unique constraint added to it. See "add_unique_constraint" in DBIx::Class::ResultSource.
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.
serializer
Serializer to use, defaults to JSON.
Dancer2::Session::DBIC provides the following serializer classes:
- JSON - Dancer2::Session::DBIC::Serializer::JSON
- Sereal - Dancer2::Session::DBIC::Serializer::Sereal
- YAML - Dancer2::Session::DBIC::Serializer::YAML
If you do not use the default JSON serializer then you might need to install additional modules - see the specific serializer class for details.
You can also use your own serializer class by passing the fully-qualified class name as argument to this option, e.g.: MyApp::Session::Serializer
serializer_object
Vivified "serializer" object.
serialize_options
Options to be passed to the constructor of the
serializer
class as a hash reference.deserialize_options
Options to be passed to the constructor of the
deserializer
class as a hash reference.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._change_id( $old_id, $new_id )
Change ID of session with
$old_id
to <$new_id>._destroy()
Remove the current session object from the database.
SEE ALSO
AUTHOR
Stefan Hornburg (Racke) <racke@linuxia.de>
ACKNOWLEDGEMENTS
Based on code from Dancer::Session::DBI written by James Aitken and code from Dancer::Plugin::DBIC written by Naveed Massjouni.
Peter Mottram, support for JSON, YAML, Sereal and custom serializers, GH #8, #9, #11, #12. Also for adding _change_id method and accompanying tests.
Rory Zweistra, GH #9.
Andy Jack, GH #2.
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.
Module Install Instructions
To install Dancer2::Session::DBIC, copy and paste the appropriate command in to your terminal.
cpanm Dancer2::Session::DBIC
perl -MCPAN -e shell install Dancer2::Session::DBIC
For more information on module installation, please visit the detailed CPAN module installation guide.