Catalyst::Plugin::Session::Store::DBIC man page on Pidora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Pidora logo
[printable version]

Catalyst::Plugin::SessUser:ContributeCatalyst::Plugin::Session::Store::DBIC(3)

NAME
       Catalyst::Plugin::Session::Store::DBIC - Store your sessions via
       DBIx::Class

SYNOPSIS
	   # Create a table in your database for sessions
	   CREATE TABLE sessions (
	       id	    CHAR(72) PRIMARY KEY,
	       session_data TEXT,
	       expires	    INTEGER
	   );

	   # Create the corresponding table class
	   package MyApp::Schema::Session;

	   use base qw/DBIx::Class/;

	   __PACKAGE__->load_components(qw/Core/);
	   __PACKAGE__->table('sessions');
	   __PACKAGE__->add_columns(qw/id session_data expires/);
	   __PACKAGE__->set_primary_key('id');

	   1;

	   # In your application
	   use Catalyst qw/Session Session::Store::DBIC Session::State::Cookie/;

	   __PACKAGE__->config(
	       # ... other items ...
	       'Plugin::Session' => {
		   dbic_class => 'DBIC::Session',  # Assuming MyApp::Model::DBIC
		   expires    => 3600,
	       },
	   );

	   # Later, in a controller action
	   $c->session->{foo} = 'bar';

DESCRIPTION
       This Catalyst::Plugin::Session storage module saves session data in
       your database via DBIx::Class.  It's actually just a wrapper around
       Catalyst::Plugin::Session::Store::Delegate; if you need complete
       control over how your sessions are stored, you probably want to use
       that instead.

METHODS
   setup_finished
       Hook into the configured session class.

   session_store_dbic_class
       Return the DBIx::Class class name to be passed to "$c->model".
       Defaults to "DBIC::Session".

   session_store_dbic_id_field
       Return the configured ID field name.  Defaults to "id".

   session_store_dbic_data_field
       Return the configured data field name.  Defaults to "session_data".

   session_store_dbic_expires_field
       Return the configured expires field name.  Defaults to "expires".

   session_store_model
       Return the model used to find a session.

   get_session_store_delegate
       Load the row corresponding to the specified session ID.	If none is
       found, one is automatically created.

   session_store_delegate_key_to_accessor
       Match the specified key and operation to the session ID and field name.

   delete_session_data
       Delete the specified session from the backend store.

   delete_expired_sessions
       Delete all expired sessions.

CONFIGURATION
       The following parameters should be placed in your application
       configuration under the "Plugin::Session" key.

   dbic_class
       (Required) The name of the DBIx::Class that represents a session in the
       database.  It is recommended that you provide only the part after
       "MyApp::Model", e.g. "DBIC::Session".

       If you are using Catalyst::Model::DBIC::Schema, the following layout is
       recommended:

       ·   "MyApp::Schema" - your DBIx::Class::Schema class

       ·   "MyApp::Schema::Session" - your session table class

       ·   "MyApp::Model::DBIC" - your Catalyst::Model::DBIC::Schema class

       This module will then use "$c->model" to access the appropriate result
       source from the composed schema matching the "dbic_class" name.

       For more information, please see Catalyst::Model::DBIC::Schema.

   expires
       Number of seconds for which sessions are active.

       Note that no automatic cleanup is done on your session data.  To delete
       expired sessions, you can use the "delete_expired_sessions" method with
       Catalyst::Plugin::Scheduler.

   id_field
       The name of the field on your sessions table which stores the session
       ID.  Defaults to "id".

   data_field
       The name of the field on your sessions table which stores session data.
       Defaults to "session_data" for compatibility with
       Catalyst::Plugin::Session::Store::DBI.

   expires_field
       The name of the field on your sessions table which stores the
       expiration time of the session.	Defaults to "expires".

SCHEMA
       Your sessions table should contain the following columns:

	   id		CHAR(72) PRIMARY KEY
	   session_data TEXT
	   expires	INTEGER

       The "id" column should probably be 72 characters.  It needs to handle
       the longest string that can be returned by "generate_session_id" in
       Catalyst::Plugin::Session, plus another eight characters for internal
       use.  This is less than 72 characters when SHA-1 or MD5 is used, but
       SHA-256 will need all 72 characters.

       The "session_data" column should be a long text field.  Session data is
       encoded using MIME::Base64 before being stored in the database.

       Note that MySQL "TEXT" fields only store 64 kB, so if your session data
       will exceed that size you'll want to use "MEDIUMTEXT", "MEDIUMBLOB", or
       larger. If you configure your DBIx::Class::ResultSource to include the
       size of the column, you will receive warnings for this problem:

	   This session requires 1180 bytes of storage, but your database
	   column 'session_data' can only store 200 bytes. Storing this
	   session may not be reliable; increase the size of your data field

       See "add_columns" in DBIx::Class::ResultSource for more information.

       The "expires" column stores the future expiration time of the session.
       This may be null for per-user and flash sessions.

       Note that you can change the column names using the "id_field",
       "data_field", and "expires_field" configuration parameters.  However,
       the column types must match the above.

AUTHOR
       Daniel Westermann-Clark <danieltwc@cpan.org>

ACKNOWLEDGMENTS
       ·   Andy Grundman, for Catalyst::Plugin::Session::Store::DBI

       ·   David Kamholz, for most of the testing code (from
		   Catalyst::Plugin::Authentication::Store::DBIC)

       ·   Yuval Kogman, for assistance in converting to
		   Catalyst::Plugin::Session::Store::Delegate

       ·   Jay Hannah, for tests and warning when session size
		   exceeds DBIx::Class storage size.

COPYRIGHT
       Copyright (c) 2006 - 2009 the Catalyst::Plugin::Session::Store::DBIC
       "AUTHOR" as listed above.

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

perl v5.14.1			  201Catalyst::Plugin::Session::Store::DBIC(3)
[top]

List of man pages available for Pidora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net