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

NAME

Plack::Session::Store - Basic in-memory session store

SYNOPSIS

  use Plack::Builder;
  use Plack::Middleware::Session;
  use Plack::Session::Store;

  my $app = sub {
      return [ 200, [ 'Content-Type' => 'text/plain' ], [ 'Hello Foo' ] ];
  };

  builder {
      enable 'Session'; # this is the defalt store
      $app;
  };

DESCRIPTION

This is a very basic in-memory session data store. It is volatile storage and not recommended for multiprocessing environments. However it is very useful for development and testing.

This should be considered the store "base" class (although subclassing is not a requirement) and defines the spec for all Plack::Session::Store::* modules. You will only need to override a couple methods if you do subclass. See the other Plack::Session::Store::* for examples of this.

METHODS

new ( %params )

No parameters are expected to this constructor.

Session Data Management

These methods fetch data from the session storage. It can only fetch, store or delete a single key at a time.

fetch ( $session_id, $key )
store ( $session_id, $key, $data )
delete ( $session_id, $key )

Storage Management

persist ( $session_id, $response )

This method will perform any data persistence nessecary to maintain data across requests. This method is called by the Plack::Session finalize method. The $response is expected to be a Plack::Response instance or an object with an equivalent interface.

cleanup ( $session_id )

This method is called by the Plack::Session expire method and is used to remove any session data.

dump_session ( $session_id )

This method is mostly for debugging purposes, it will always return a HASH ref, even if no data is actually being stored (in which case the HASH ref will be empty).

BUGS

All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.

AUTHOR

Stevan Little <stevan.little@iinteractive.com>

COPYRIGHT AND LICENSE

Copyright 2009, 2010 Infinity Interactive, Inc.

http://www.iinteractive.com

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