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

OpenPlugin::Request - Retrieve values related to the client request

SYNOPSIS

 my $r = shift;
 $OP = OpenPlugin->new( request => { apache => $r });

 ...

 my $req_obj = $OP->request->object;
 my $uri     = $OP->request->uri;

DESCRIPTION

The Request plugin offers an interface to retrieve various pieces of information available regarding the client request.

If you're looking for methods to work with params, cookies, headers, or uploads, so those respective plugins.

This plugin acts as somewhat of a superclass of those plugins, and offers you access to the request object, along with a variety of other methods.

METHODS

object()

Returns the request object.

uri()

Returns the uri for the last request.

BUGS

None known.

TO DO

The interface provided by the Request/Cookie/Httpheader/Param/Upload plugins, is, as you know, meant to abstract the existing CGI and mod_perl interfaces (along with any other drivers that may, at one day, be created). The interface provided here is certainly not complete. What other functionality should we provide here?

Another thing we are doing now is allowing, say, the httpheader plugin to use the CGI driver, and the param plugin the Apache driver. Is this useful? Some things could be made simpler both internally and externally if we eliminate that possibility, and have httpheader/param/cookie/upload all use the same driver.

To allow for more flexibility, I'm looking at adding some functionality to functions provided by these modules. Instead of requiring that you use get_incoming/set_incoming, I'm looking at making an incoming method, which gets or sets based on how many parameters it was passed.

I'm also considering providing a mechanism for retrieving a tied hash. Instead of using the above interface, you would just add or remove items from the tied hash. Very similar to Apache::Table.

It would be neat to have more drivers. How about a POE driver? CGI::Request, CGI::Base, CGI::MiniSvr, and others would also be neat.

SEE ALSO

See the individual driver documentation for settings and parameters specific to that driver.

COPYRIGHT

Copyright (c) 2001-2002 Eric Andreychek. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHORS

Eric Andreychek <eric@openthought.net>