NAME
Plasp::App - Create Plasp Plack App!
SYNOPSIS
In MyApp.pm
package MyApp;
use Moo;
with 'Plasp::App';
around new => sub {
my ( $orig, $class ) = ( shift, shift );
$class->$orig( @_ );
};
1;
In app.psgi
use MyApp;
$app = MyApp->new;
DESCRIPTION
Use Plasp::App as a Role::Tiny to create a new PSGI app. Call the new
class method and get a subroutine in return which will serve a PSGI application.
CLASS METHODS
- $class->new(%config)
-
You can pass in the configuration in
new
$app = MyApp->new( ApplicationRoot => '/var/www', DocumentRoot => 'root', Global => 'lib', GlobalPackage => 'MyApp', IncludesDir => 'templates', MailHost => 'localhost', MailFrom => 'myapp@localhost', XMLSubsMatch => '(?:myapp):\w+', Error404Path => '/error404.asp', Error500Path => '/error500.asp', Debug => 0, );
- $class->config(%config)
-
You can even set or override the configuration in another context either before or after initialization;
$app = MyApp->new; MyApp->config(ApplicationRoot => '/var/www'); MyApp->config(DocumentRoot => 'html'); MyApp->config(Global => 'lib'); MyApp->config(GlobalPackage => 'MyApp'); MyApp->config(IncludesDir => 'templates');
- $class->psgi_app
-
Alternatively, you can just call the
psgi_app
class method, which is the same as calling$class->new
without passing in any configuration.MyApp->config( ApplicationRoot => '/var/www', DocumentRoot => 'root', Global => 'lib', GlobalPackage => 'MyApp', IncludesDir => 'templates', ); $app = MyApp->psgi_app;