Tatsuhiko Miyagawa > Plack-1.0018 > Plack::Middleware::Recursive

Download:
Plack-1.0018.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Source   Latest Release: Plack-1.0030

NAME ^

Plack::Middleware::Recursive - Allows PSGI apps to include or forward requests recursively

SYNOPSIS ^

  # with Builder
  enable "Recursive";

  # in apps
  my $res = $env->{'plack.recursive.include'}->("/new_path");

  # Or, use exceptions
  my $app = sub {
      # ...
      Plack::Recursive::ForwardRequest->throw("/new_path");
  };

DESCRIPTION ^

Plack::Middleware::Recursive allows PSGI applications to recursively include or forward requests to other paths. Applications can make use of callbacks stored in $env->{'plack.recursive.include'} to include another path to get the response (whether it's an array ref or a code ref depending on your application), or throw an exception Plack::Recursive::ForwardRequest anywhere in the code to forward the current request (i.e. abort the current and redo the request).

EXCEPTIONS ^

This middleware passes through unknown exceptions to the outside middleware stack, so if you use this middleware with other exception handlers such as Plack::Middleware::StackTrace or Plack::Middleware::HTTPExceptions, be sure to wrap this so Plack::Middleware::Recursive gets as inner as possible.

AUTHORS ^

Tatsuhiko Miyagawa

Masahiro Honma

SEE ALSO ^

Plack Plack::Middleware::HTTPExceptions

The idea, code and interface are stolen from Rack::Recursive and paste.recursive.

syntax highlighting: