Nephia - Mini WAF
### Get started the Nephia! $ nephia-setup MyApp ### And, plackup it! $ cd myapp $ plackup
Nephia is a mini web-application framework.
Use "path" function as following in lib/MyApp.pm .
First argument is path for mount a controller. This must be string.
Second argument is controller-logic. This must be code-reference.
In controller-logic, you may get Plack::Request object as first-argument, and controller-logic must return response-value as hash-reference or Plack::Response object.
Look this examples.
path '/foobar' => sub { my ( $req ) = @_; # Yet another syntax is following. # my $req = req; return { name => 'MyApp', query => $req->param('q'), }; };
This controller outputs response-value as JSON, and will be mounted on "/foobar".
path '/' => sub { return { template => 'index.tx', title => 'Welcome to my homepage!', }; };
Attention to "template" attribute. If you specified it, controller searches template file from view-directory and render it.
If you use multibyte-string in response, please remember 'use utf8;' and, you may specify character-set as like as following.
path '/' => sub { return { template => 'mytemplate.tx', title => 'わたしのホォムペェジへよおこそ!', charset => 'Shift_JIS', }; };
If you not specified 'charset', it will be 'UTF-8'.
path '/my-javascript' => sub { return res { content_type( 'text/javascript' ); body( 'alert("Oreore!");' ); }; };
"res" function returns Plack::Response object with customisable DSL-like syntax.
First, see app.psgi that generated by nephia-setup.
use strict; use warnings; use FindBin; use lib ("$FindBin::Bin/lib", "$FindBin::Bin/extlib/lib/perl5"); use MyApp; MyApp->run;
You may define config with run method as like as following.
MyApp->run( attr1 => 'value', logpath => '/path/to/log', ... );
And, you can access to these config in your application as following.
path '/foo/bar' => sub { my $config = config; };
You can look static-files that is into root directory via HTTP.
You may use validator with validate function.
path '/some/path' => sub { my $params = validate name => { isa => 'Str', default => 'Nameless John' }, age => { isa => 'Int' } ; };
See documentation of validate method and Data::Validator.
Mount controller on specified path.
Return Plack::Request object. You can call this function in coderef that is argument of path().
Return Plack::Response object with customisable DSL-like syntax.
Return config as hashref.
Return validated parameters as hashref. You have to set validation rule as like as Data::Validator's instantiate arguments.
ytnobody <ytnobody@gmail.com>
Plack::Request
Plack::Response
Plack::Builder
Text::Xslate
Text::Xslate::Syntax::Kolon
JSON
Data::Validator
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
1 POD Error
The following errors were encountered while parsing the POD:
Non-ASCII character seen before =encoding in ''わたしのホォムペェジへよおこそ!','. Assuming UTF-8
To install Nephia, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Nephia
CPAN shell
perl -MCPAN -e shell install Nephia
For more information on module installation, please visit the detailed CPAN module installation guide.