Apache-Session-Wrapper
view release on metacpan or search on metacpan
lib/Apache/Session/Wrapper.pm view on Meta::CPAN
=item * store => class
Corresponds to the C<Store> parameter passed to
C<Apache::Session::Flex>.
=item * lock => class
Corresponds to the C<Lock> parameter passed to
C<Apache::Session::Flex>.
=item * generate => class
Corresponds to the C<Generate> parameter passed to
C<Apache::Session::Flex>.
=item * serialize => class
Corresponds to the C<Serialize> parameter passed to
C<Apache::Session::Flex>.
=item * textsize => size
Corresponds to the C<textsize> parameter passed to
C<Apache::Session::Sybase>.
=item * long_read_len => size
Corresponds to the C<LongReadLen> parameter passed to
C<Apache::Session::MySQL>.
=item * n_sems => number
Corresponds to the C<NSems> parameter passed to
C<Apache::Session::Lock::Semaphore>.
=item * semaphore_key => key
Corresponds to the C<SemaphoreKey> parameter passed to
C<Apache::Session::Lock::Semaphore>.
=item * mod_usertrack_cookie_name => name
Corresponds to the C<ModUsertrackCookieName> parameter passed to
C<Apache::Session::Generate::ModUsertrack>.
=item * save_path => path
Corresponds to the C<SavePath> parameter passed to
C<Apache::Session::PHP>.
=back
=head1 HOW COOKIES ARE HANDLED
When run under mod_perl, this module attempts to first use
C<Apache::Cookie> for cookie-handling. Otherwise it uses
C<CGI::Cookie> as a fallback.
If it ends up using C<CGI::Cookie> then you must provide a
"header_object" parameter. This object must have an
C<err_headers_out()> or C<headers_out()> method. It looks for these
methods in that order. The method is expected to return an object with
an API like C<Apache::Table>. It calls C<add()> on the returned method
to add a "Set-Cookie" header.
=head1 REGISTERING CLASSES
In order to support any C<Apache::Session> subclasses, this module
provides a simple registration mechanism.
You can register an C<Apache::Session> subclass, or a class intended
to provide a class that implements something required by
C<Apache::Session::Flex>.
=head2 Registering a Complete Subclass
This is done by calling C<< Apache::Session::Wrapper->RegisterClass() >>:
Apache::Session::Wrapper->RegisterClass
( name => 'MyClass',
required => [ [ qw( param1 param2 ) ],
[ qw( param3 param4 ) ] ],
optional => [ 'optional_p' ],
);
Apache::Session::Wrapper->RegisterClass
( name => 'Apache::Session::MyFile',
required => 'File',
optional => 'File',
);
The C<RegisterClass()> method takes the following options:
=over 4
=item * name
This should be the name of the class you are registering. The actual
class must start with "Apache::Session::", but this part does not need
to be included when registering the class (it's optional).
=item * required
These are the required parameters for this class.
The value of this parameter can either be a string or a reference to
an array of array references.
If it is a string, then it identifies an existing C<Apache::Session>
subclass which is already registered or built-in, like "File" or
"Postgres".
If it an array reference, then I<that reference> should in turn
contain one or more array references. Each of those contained
references represents one set of required parameters. When an
C<Apache::Session::Wrapper> object is constructed, only one of these
sets must be passed in. For example:
required => [ [ qw( p1 p2 ) ],
[ qw( p2 p3 p4 ) ] ]
( run in 0.668 second using v1.01-cache-2.11-cpan-39bf76dae61 )