Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

plack::component(3pm) [debian man page]

Plack::Component(3pm)					User Contributed Perl Documentation				     Plack::Component(3pm)

NAME
Plack::Component - Base class for PSGI endpoints SYNOPSIS
package Plack::App::Foo; use parent qw( Plack::Component ); sub call { my($self, $env) = @_; # Do something with $env my $res = ...; # create a response ... # return the response return $res; } DESCRIPTION
Plack::Component is the base class shared between Plack::Middleware and Plack::App::* modules. If you are writing middleware, you should inherit from Plack::Middleware, but if you are writing a Plack::App::* you should inherit from this directly. REQUIRED METHOD
call ($env) You are expected to implement a "call" method in your component. This is where all the work gets done. It receives the PSGI $env hash- ref as an argument and is expected to return a proper PSGI response value. METHODS
new (%opts | \%opts) The constructor accepts either a hash or a hash-ref and uses that to create the instance with. It will call no other methods and simply return the instance that is created. prepare_app This method is called by "to_app" and is meant as a hook to be used to prepare your component before it is packaged as a PSGI $app. to_app This is the method used in several parts of the Plack infrastructure to convert your component into a PSGI $app. You should not ever need to override this method, it is recommended to use "prepare_app" and "call" instead. response_cb This is a wrapper for "response_cb" in Plack::Util. See "RESPONSE CALLBACK" in Plack::Middleware for details. OBJECT LIFECYCLE
Objects for the derived classes (Plack::App::* or Plack::Middleware::*) are created at the PSGI application compile phase using "new", "prepare_app" and "to_app", and the created object persists during the web server lifecycle, unless it is running on the non-persistent environment like CGI. "call" is invoked against the same object whenever a new request comes in. You can check if it is running in a persistent environment by checking "psgi.run_once" key in the $env being true (non-persistent) or false (persistent), but it is best for you to write your middleware safely for a persistent environment. To accomplish that, you should avoid saving per-request data like $env in your object. BACKWARDS COMPATIBILITY
The Plack::Middleware module used to inherit from Class::Accessor::Fast, which has been removed in favor of the Plack::Util::Accessor module. When developing new components it is recommended to use Plack::Util::Accessor like so: use Plack::Util::Accessor qw( foo bar baz ); However, in order to keep backwards compatibility this module provides a "mk_accessors" method similar to Class::Accessor::Fast. New code should not use this and use Plack::Util::Accessor instead. SEE ALSO
Plack Plack::Builder Plack::Middleware perl v5.14.2 2011-06-22 Plack::Component(3pm)

Check Out this Related Man Page

Plack::Runner(3pm)					User Contributed Perl Documentation					Plack::Runner(3pm)

NAME
Plack::Runner - plackup core SYNOPSIS
# Your bootstrap script use Plack::Runner; my $app = sub { ... }; my $runner = Plack::Runner->new; $runner->parse_options(@ARGV); $runner->run($app); DESCRIPTION
Plack::Runner is the core of plackup runner script. You can create your own frontend to run your application or framework, munge command line options and pass that to "run" method of this class. "run" method does exactly the same thing as the plackup script does, but one notable addition is that you can pass a PSGI application code reference directly to the method, rather than via ".psgi" file path or with "-e" switch. This would be useful if you want to make an installable PSGI application. Also, when "-h" or "--help" switch is passed, the usage text is automatically extracted from your own script using Pod::Usage. NOTES
Do not directly call this module from your ".psgi", since that makes your PSGI application unnecessarily depend on plackup and won't run other backends like Plack::Handler::Apache2 or mod_psgi. If you really want to make your ".psgi" runnable as a standalone script, you can do this: my $app = sub { ... }; unless (caller) { require Plack::Runner; my $runner = Plack::Runner->new; $runner->parse_options(@ARGV); return $runner->run($app); } return $app; WARNING: this section used to recommend "if (__FILE__ eq $0)" but it's known to be broken since Plack 0.9971, since $0 is now always set to the .psgi file path even when you run it from plackup. SEE ALSO
plackup perl v5.14.2 2012-03-21 Plack::Runner(3pm)
Man Page