NAME
OpenFrame::WebApp::Session - sessions for OpenFrame-WebApp
SYNOPSIS
use OpenFrame::WebApp::Session;
my $session = new OpenFrame::WebApp::Session()
   ->set($key1, $val1)->set($key2, $val2);
$val = $session->get( $key );
my $id = $session->store();
my $restored = OpenFrame::WebApp::Session->fetch( $id );
DESCRIPTION
The OpenFrame::WebApp::Session class is an abstract wrapper around session storing classes like Cache::FileCache, CGI::Session, Apache::Session, etc.
In WebApp, sessions are a storable hash with a session id, and an expiry period.
Just incase something like Pixie is used to store the sessions, you should always use the set/get methods to retrieve keys from the hash.
This class was meant to be used with OpenFrame::WebApp::Session::Factory.
METHODS
- types
 - 
set/get the hash of $session_types => $class_names known to this class.
 - $session->id
 - 
set/get the session id (stored as 'session_id', FYI).
 - $session->expiry
 - 
set/get the expiry period (stored as 'expiry_period', FYI). This should be a string compatible with
Time::ParseDate. - $time = $session->get_expiry_seconds
 - 
parses the expiry period with
Time::ParseDate, and returns the result in seconds.Note:
$time == undefimplies no expiry time, whereas$time <= 0implies expires immediately. - $session->set( $key, $val )
 - 
associates $key with $val, and returns this object.
 - $val = $session->get( $key )
 - 
returns value associated with $key.
 - $id = $session->store
 - 
abstract method, saves the session to disk and returns the session id.
 - $session = $class->fetch( $id )
 - 
abstract method, returns the session with the given $id or undef if not found or expired.
 - $session->remove( [ $id ] )
 - 
abstract method, removes this object from the store, and returns this object. if called as a class method, $id is expected.
 - $id = $session->generate_id
 - 
internal method to generate a new session id.
 
SUB-CLASSING
Read through the source of this package and the known sub-classes first. The minumum you need to do is this:
use base qw( OpenFrame::WebApp::Session );
OpenFrame::WebApp::Session->types->{my_type} = __PACKAGE__;
sub store {
    ...
    return $id;
}
sub fetch {
    ...
    return new Some::Session();
}
sub remove {
    ...
    return $self;
}
You must register your session type if you want to use the Session::Factory.
AUTHOR
Steve Purkis <spurkis@epn.nu>
Based on OpenFrame::AppKit::Session by James A. Duncan
COPYRIGHT
Copyright (c) 2003 Steve Purkis. All rights reserved. Released under the same license as Perl itself.
SEE ALSO
Time::ParseDate, OpenFrame::WebApp::Sesssion::Factory, OpenFrame::WebApp::Sesssion::FileCache, OpenFrame::WebApp::Segment::Sesssion::Loader
Similar modules: