1 package Catalyst::Engine::CGI::APR;
4 use base 'Catalyst::Engine::CGI::Base';
10 use APR::Request::Param;
12 __PACKAGE__->mk_accessors( qw[apr pool] );
16 Catalyst::Engine::CGI::APR - The CGI APR Engine
20 A script using the Catalyst::Engine::CGI::APR module might look like:
25 $ENV{CATALYST_ENGINE} = 'CGI::APR';
29 use lib '/path/to/MyApp/lib';
36 This Catalyst engine uses C<APR::Request::CGI> for parsing of message body.
44 Contains the C<APR::Request::CGI> object.
48 Contains the C<APR::Pool> object.
52 =head1 OVERLOADED METHODS
54 This class overloads some methods from C<Catalyst::Engine::CGI::Base>.
58 =item $c->prepare_parameters
62 sub prepare_parameters {
67 if ( my $table = $c->apr->param ) {
70 my ( $field, $value ) = @_;
71 push( @params, $field, $value );
75 $c->request->param(@params);
79 =item $c->prepare_request
85 $c->pool( APR::Pool->new );
86 $c->apr( APR::Request::CGI->handle( $c->pool ) );
89 =item $c->prepare_uploads
98 if ( my $body = $c->apr->body ) {
100 $body->param_class('APR::Request::Param');
102 $body->uploads( $c->pool )->do( sub {
103 my ( $field, $upload ) = @_;
105 my $object = Catalyst::Request::Upload->new(
106 filename => $upload->upload_filename,
107 size => $upload->upload_size,
108 tempname => $upload->upload_tempname,
109 type => $upload->upload_type
112 push( @uploads, $field, $object );
117 $c->request->upload(@uploads);
125 L<Catalyst>, L<APR::Request::CGI>, L<Catalyst::Engine::CGI::Base>.
129 Sebastian Riedel, C<sri@cpan.org>
130 Christian Hansen, C<ch@ngmedia.com>
134 This program is free software, you can redistribute it and/or modify it under
135 the same terms as Perl itself.