use base 'Class::Accessor::Fast';
__PACKAGE__->mk_accessors(
- qw/action arguments base cookies headers match method parameters path
- snippets uploads/
+ qw/action address arguments base cookies headers hostname match method
+ parameters path snippets uploads/
);
*args = \&arguments;
*params = \¶meters;
+sub content_encoding { shift->headers->content_encoding(@_) }
+sub content_length { shift->headers->content_length(@_) }
+sub content_type { shift->headers->content_type(@_) }
+sub header { shift->headers->header(@_) }
+sub referer { shift->headers->referer(@_) }
+sub user_agent { shift->headers->user_agent(@_) }
+
=head1 NAME
Catalyst::Request - Catalyst Request Class
=head1 SYNOPSIS
-See L<Catalyst>.
+
+ $req = $c->request;
+ $req->action;
+ $req->address;
+ $req->args;
+ $req->arguments;
+ $req->base;
+ $req->content_encoding;
+ $req->content_length;
+ $req->content_type;
+ $req->cookies;
+ $req->header;
+ $req->headers;
+ $req->hostname;
+ $req->match;
+ $req->method;
+ $req->parameters;
+ $req->params;
+ $req->path;
+ $req->referer;
+ $req->snippets;
+ $req->uploads;
+ $req->user_agent
+
+See also L<Catalyst>.
=head1 DESCRIPTION
-The Catalyst Request.
+This is the Catalyst Request class, which provides a set of accessors to the
+request data. The request object is prepared by the specialized Catalyst
+Engine module thus hiding the details of the particular engine implementation.
+
+
+=head1 METHODS
-=head2 METHODS
+=over 4
-=head3 action
+=item $req->action
Contains the action.
print $c->request->action;
-=head3 arguments (args)
+=item $req->address
+
+Contains the remote address.
+
+ print $c->request->address
+
+=item $req->arguments
+
+=item $req->args
-Returns an arrayref containing the arguments.
+Returns a reference to an array containing the arguments.
print $c->request->arguments->[0];
-=head3 base
+=item $req->base
Contains the uri base.
-=head3 cookies
+=item $req->content_encoding
-Returns a hashref containing the cookies.
+Shortcut to $req->headers->content_encoding
+
+=item $req->content_length
+
+Shortcut to $req->headers->content_length
+
+=item $req->content_type
+
+Shortcut to $req->headers->content_type
+
+=item $req->cookies
+
+Returns a reference to a hash containing the cookies.
print $c->request->cookies->{mycookie}->value;
-=head3 headers
+=item $req->header
+
+Shortcut to $req->headers->header
-Returns a L<HTTP::Headers> object containing the headers.
+=item $req->headers
+
+Returns an L<HTTP::Headers> object containing the headers.
print $c->request->headers->header('X-Catalyst');
-=head3 match
+=item $req->hostname
+
+Contains the remote hostname.
+
+ print $c->request->hostname
+
+=item $req->match
Contains the match.
print $c->request->match;
-=head3 parameters (params)
+=item $req->method
+
+Contains the request method (C<GET>, C<POST>, C<HEAD>, etc).
+
+ print $c->request->method
+
+=item $req->parameters
+
+=item $req->params
-Returns a hashref containing the parameters.
+Returns a reference to a hash containing the parameters.
print $c->request->parameters->{foo};
-=head3 path
+=item $req->path
Contains the path.
print $c->request->path;
-=head3 method
+=item $req->referer
-Contains the request method.
-
- print $c->request->method
+Shortcut to $req->headers->referer
-=head3 snippets
+=item $req->snippets
-Returns an arrayref containing regex snippets.
+Returns a reference to an array containing regex snippets.
my @snippets = @{ $c->request->snippets };
-=head3 uploads
+=item $req->uploads
-Returns a hashref containing the uploads.
+Returns a reference to a hash containing the uploads.
my $filename = $c->req->parameters->{foo};
print $c->request->uploads->{$filename}->{type};
my $fh = $c->request->uploads->{$filename}->{fh};
my $content = do { local $/; <$fh> };
+=item $req->user_agent
+
+Shortcut to $req->headers->user_agent
+
+=back
+
=head1 AUTHOR
Sebastian Riedel, C<sri@cpan.org>