Plack::App::File(3pm) User Contributed Perl Documentation Plack::App::File(3pm)NAME
Plack::App::File - Serve static files from root directory
SYNOPSIS
use Plack::App::File;
my $app = Plack::App::File->new(root => "/path/to/htdocs")->to_app;
# Or map the path to a specific file
use Plack::Builder;
builder {
mount "/favicon.ico" => Plack::App::File->new(file => '/path/to/favicon.ico');
};
DESCRIPTION
This is a static file server PSGI application, and internally used by Plack::Middleware::Static. This application serves file from document
root if the path matches with the local file. Use Plack::App::Directory if you want to list files in the directory as well.
CONFIGURATION
root
Document root directory. Defaults to "." (current directory)
file
The file path to create responses from. Optional.
If it's set the application would ALWAYS create a response out of the file and there will be no security check etc. (hence fast). If
it's not set, the application uses "root" to find the matching file.
encoding
Set the file encoding for text files. Defaults to "utf-8".
content_type
Set the file content type. If not set Plack::MIME will try to detect it based on the file extension or fall back to "text/plain".
AUTHOR
Tatsuhiko Miyagawa
SEE ALSO
Plack::Middleware::Static Plack::App::Directory
perl v5.14.2 2014-10-09 Plack::App::File(3pm)
Check Out this Related 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)