GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  PLACK::COMPONENT (3)

.ds Aq ’

NAME

Plack::Component - Base class for PSGI endpoints

CONTENTS

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 hashref and uses that to create the instance. 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
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 PLACK::COMPONENT (3) 2015-06-03

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.