The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

MasonX::Request::ExtendedCompRoot::WithApacheSession - Extend functionality of Mason's comp_root and add a session to the Mason Request object

SYNOPSIS

In your httpd.conf file:

  PerlSetVar  MasonRequestClass         MasonX::Request::ExtendedCompRoot::WithApacheSession
  PerlSetVar  MasonResolverClass        MasonX::Resolver::ExtendedCompRoot
  PerlSetVar  MasonSessionCookieDomain  .example.com
  PerlSetVar  MasonSessionClass         Apache::Session::MySQL
  PerlSetVar  MasonSessionDataSource    dbi:mysql:somedb

Or when creating an ApacheHandler object:

  my $ah =
      HTML::Mason::ApacheHandler->new
          ( request_class         => 'MasonX::Request::ExtendedCompRoot::WithApacheSession',
            resolver_class        => 'MasonX::Resolver::ExtendedCompRoot',
            session_cookie_domain => '.example.com',
            session_class         => 'Apache::Session::MySQL',
            session_data_source   => 'dbi:mysql:somedb',
          );

In a component:

  # use a session
  $m->session->{foo} = 1;
  if ( $m->session->{bar}{baz} > 1 ) { ... }

  # dynamically add a root to the component root
  $m->prefix_comp_root('key=>/path/to/root');
  
  # call a component in a specific component root
  <& key=>/path/to/comp &>

DESCRIPTION

This module simply integrates MasonX::Request::ExtendedCompRoot and MasonX::Request::WithApacheSession.

USAGE

SET UP

To use this module you need to tell Mason to use this class for requests and MasonX::Resolver::ExtendedCompRoot for its resolver. This can be done in two ways. If you are configuring Mason via your httpd.conf file, simply add this:

  PerlSetVar  MasonRequestClass    MasonX::Request::ExtendedCompRoot::WithApacheSession
  PerlSetVar  MasonResolverClass   MasonX::Resolver::ExtendedCompRoot

If you are using a handler.pl file, simply add this parameter to the parameters given to the ApacheHandler constructor:

  request_class  => 'MasonX::Request::ExtendedCompRoot::WithApacheSession'
  resolver_class => 'MasonX::Resolver::ExtendedCompRoot'

METHODS

This class adds two methods from MasonX::Request::WithApacheSession to the Request object (session and delete_session), and three from MasonX::Request::ExtendedCompRoot, (comp_root, prefix_comp_root and reset_comp_root).

See the respective modules for documentation of these methods.

PREREQUISITES

MasonX::Request::ExtendedCompRoot, MasonX::Request::WithApacheSession

BUGS

No known bugs.

VERSION

0.04

SEE ALSO

HTML::Mason, MasonX::Request::ExtendedCompRoot, MasonX::Request::WithApacheSession

AUTHOR

Alex Robinson, <cpan[@]alex.cloudband.com>

LICENSE

MasonX::Request::ExtendedCompRoot::WithApacheSession is free software and can be used under the same terms as Perl, i.e. either the GNU Public Licence or the Artistic License.