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::Middleware::AccessLog(3pm)			User Contributed Perl Documentation			 Plack::Middleware::AccessLog(3pm)

NAME
Plack::Middleware::AccessLog - Logs requests like Apache's log format SYNOPSIS
# in app.psgi use Plack::Builder; builder { enable "Plack::Middleware::AccessLog", format => "combined"; $app; }; DESCRIPTION
Plack::Middleware::AccessLog forwards the request to the given app and logs request and response details to the logger callback. The format can be specified using Apache-like format strings (or "combined" or "common" for the default formats). If none is specified "combined" is used. This middleware uses calculable content-length by checking body type, and can not log the time taken to serve requests. It also logs the request before the response is actually sent to the client. Use Plack::Middleware::AccessLog::Timed if you want to log details after the response is transmitted (more like a real web server) to the client. This middleware is enabled by default when you run plackup as a default "development" environment. CONFIGURATION
format enable "Plack::Middleware::AccessLog", format => '%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-agent}i"'; Takes a format string (or a preset template "combined" or "custom") to specify the log format. This middleware implements a subset of Apache's LogFormat templates <http://httpd.apache.org/docs/2.0/mod/mod_log_config.html>: %% a percent sign %h REMOTE_ADDR from the PSGI environment, or - %l remote logname not implemented (currently always -) %u REMOTE_USER from the PSGI environment, or - %t [local timestamp, in default format] %r REQUEST_METHOD, REQUEST_URI and SERVER_PROTOCOL from the PSGI environment %s the HTTP status code of the response %b content length %T custom field for handling times in subclasses %D custom field for handling sub-second times in subclasses %v SERVER_NAME from the PSGI environment, or - %V HTTP_HOST or SERVER_NAME from the PSGI environment, or - Some of these format fields are only supported by middleware that subclasses "AccessLog". In addition, custom values can be referenced, using "%{name}", with one of the mandatory modifier flags "i", "o" or "t": %{variable-name}i HTTP_VARIABLE_NAME value from the PSGI environment %{header-name}o header-name header %{time-format]t localtime in the specified strftime format logger my $logger = Log::Dispatch->new(...); enable "Plack::Middleware::AccessLog", logger => sub { $logger->log(level => 'debug', message => @_) }; Sets a callback to print log message to. It prints to "psgi.errors" output stream by default. SEE ALSO
<http://httpd.apache.org/docs/2.2/mod/mod_log_config.html> Rack::CustomLogger perl v5.14.2 2012-04-14 Plack::Middleware::AccessLog(3pm)
Man Page