| Apache2-ASP documentation | Contained in the Apache2-ASP distribution. |
Apache2::ASP::HTTPHandler - base HTTP handler class
Internal use only.
All *Handlers (FormHandlers, ErrorHandlers, UploadHandlers, etc) are subclasses of this class.
HTTPHandler provides the mechanism for inheriting and initializing the ASP objects ($Request, $Response, $Session, $Server, etc) in itself and all of its subclasses, recursively.
This shoud be called by every *Handler and MediaManager subclass.
Returns a list of strings like this:
qw(
$Response $Application
$Request $Stash
$Config $Form
$Server $Session
);
It's possible that some bugs have found their way into this release.
Use RT http://rt.cpan.org/NoAuth/Bugs.html?Dist=Apache2-ASP to submit bug reports.
Please visit the Apache2::ASP homepage at http://www.devstack.com/ to see examples of Apache2::ASP in action.
John Drago mailto:jdrago_999@yahoo.com
Copyright 2007 John Drago, All rights reserved.
This software is free software. It may be used and distributed under the same terms as Perl itself.
| Apache2-ASP documentation | Contained in the Apache2-ASP distribution. |
package Apache2::ASP::HTTPHandler; use strict; use warnings 'all'; BEGIN { use vars '@VARS'; our @VARS = qw( $Request $Response $Server $Application $Session $Form $Config $Stash %modes ); sub VARS { @VARS } } use vars __PACKAGE__->VARS; #============================================================================== sub new { my ($class) = shift; #warn "$class: new: " . caller; return bless { @_ }, $class; }# end new() #============================================================================== sub before_run { 1; } sub after_run { } sub run; #============================================================================== sub init_asp_objects { my ($s, $context) = @_; no strict 'refs'; my $selfclass = ref($s) ? ref($s) : $s; # Get each of this classes' superclasses, and theirs as well, recursively: my %c = map { $_ => 1 } ( grep { $_->isa('Apache2::ASP::HTTPHandler') } ( $selfclass, @{"$selfclass\::ISA"} ) ); map { $c{$_}++ } map { @{"$_\::ISA"} } keys(%c); my @classes = keys(%c); my ( $request, $response, $server, $session, $application, $config, $form, $stash ) = ( $context->request, $context->response, $context->server, $context->session, $context->application, $context->config, $context->request->Form, $context->stash ); foreach my $class ( @classes ) { ${"$class\::Request"} = $request; ${"$class\::Response"} = $response; ${"$class\::Server"} = $server; ${"$class\::Session"} = $session; ${"$class\::Application"} = $application; ${"$class\::Config"} = $config; ${"$class\::Form"} = $form; ${"$class\::Stash"} = $stash; }# end foreach() 1; }# end init_asp_objects() #============================================================================== sub register_mode { my ($s, %info) = @_; $modes{ $info{name} } = $info{handler}; }# end register_mode() #============================================================================== sub modes { my $s = shift; my $key = shift; @_ ? $modes{$key} = shift : $modes{$key}; }# end modes() 1;# return true: