# NAME
Plack::Middleware::Scope::Container - per-request container
# SYNOPSIS
use Plack::Builder;
builder {
enable "Plack::Middleware::Scope::Container";
$app
};
# in your application
package MyApp;
use Scope::Container;
sub getdb {
if ( my $dbh = scope_container('db') ) {
return $dbh;
} else {
my $dbh = DBI->connect(...);
scope_container('db', $dbh)
return $dbh;
}
}
sub app {
my $env = shift;
getdb(); # do connect
getdb(); # from container
getdb(); # from container
return [ '200', [] ["OK"]];
# disconnect from db at end of request
}
# DESCRIPTION
Plack::Middleware::Scope::Container and [Scope::Container](
http://search.cpan.org/perldoc?Scope::Container) work like mod\_perl's pnotes.
It gives a per-request container to your application.
# AUTHOR
Masahiro Nagano <kazeburo {at} gmail.com>
# SEE ALSO
[Scope::Container](
http://search.cpan.org/perldoc?Scope::Container), [Plack::Middleware::Scope::Session](
http://search.cpan.org/perldoc?Plack::Middleware::Scope::Session)
# LICENSE
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.