HTML::Mason::ApacheHandler - Mason/mod_perl interface |
use()
DECLARATIONnew()
CONTRUCTOR
HTML::Mason::ApacheHandler - Mason/mod_perl interface
use HTML::Mason::ApacheHandler;
my $ah = new HTML::Mason::ApacheHandler (..name/value params..); ... sub handler { my $r = shift; $ah->handle_request($r); }
The ApacheHandler object links Mason to mod_perl, running components in
response to HTTP requests. It is controlled primarily through
parameters to the new()
constructor.
handle_request()
is not a user method, but rather is called from the
HTML::Mason::handler() routine in handler.pl.
use()
DECLARATIONThe following are parameters to pass explicitly when using HTML::Mason::ApacheHandler. e.g.
use HTML::Mason::ApacheHandler (args_method=>'mod_perl');
'CGI' is the default and should work on most Perl systems. However, if you have the Apache::Request package (or are inclined to fetch it from CPAN), you might switch to 'mod_perl' for speed and memory efficiency.
When specifying args_method='CGI', the Mason request object ($m)
will have a method called cgi_object
available. This method
returns the CGI object used in the ApacheHandler code.
When specifying args_method='mod_perl', the $r global is upgraded to an Apache::Request object. This object inherits all Apache methods and adds a few of its own, dealing with parameters and file uploads. See Apache::Request manual page for more information.
new()
CONTRUCTORSee the Devel/sending_http_headers of the Component Developer's Guide for details about the automatic header feature.
In html mode the handler sends a readable HTML version of the error message to the client. This mode is most useful on a development server.
In fatal mode the handler simply dies with a compact version of the
error message. This may be caught with an eval around
$ah->handle_request
or left for Apache to handle. In the latter
case the error will end up in the error logs. This mode is most
useful on a production server.
The raw_html and raw_fatal modes emulate pre-1.02 error behavior. They are analagous to the modes above except that the errors are not processed for readability or compactness. The resulting messages are much longer, but may include information accidentally omitted by Mason's processing.
Regardless of this setting, no readability processing occurs if you have overriden the Interp/die_handler Interp parameter.
$ah->output_mode
will cause $interp->out_mode
to be set
appropriately.
The subroutine receives one parameter, the absolute path to the component. It then returns either a true (serve component) or false (reject component). In this example, the predicate rejects requests for components whose name starts with an ``_'' character:
top_level_predicate => sub { $_[0] !~ m{/_[^/]+$}
All of the above properties have standard accessor methods of the same name: no arguments retrieves the value, and one argument sets it. For example:
my $ah = new HTML::Mason::ApacheHandler; my $errmode = $ah->error_mode; $ah->error_mode('html');
Jonathan Swartz, swartz@pobox.com
HTML::Mason, HTML::Mason::Parser, HTML::Mason::Interp, HTML::Mason::Admin
HTML::Mason::ApacheHandler - Mason/mod_perl interface |