Drogo - Lightweight web framework
Kick-start a project: drogo --create=[projectname]
or
app.psgi:
use Drogo::Server::PSGI; use Example::App; my $app = sub { my $env = shift; return sub { my $respond = shift; # create new server object my $server = Drogo::Server::PSGI->new( env => $env, respond => $respond ); Example::App->handler( server => $server ); } };
Example/App.pm:
package Example::App; use strict; use Drogo::Dispatch( auto_import => 1 ); sub init { my $self = shift; $self->{foo} = 'bar'; } sub primary :Index { my $self = shift; # $self->r is a shared response/requet object # $self->request/req gives a request object # $self->response/res gives a response object # $self->dispatcher returns drogo object # $self->server is a server object $self->r->header('text/html'); # default $self->r->status(200); # defaults to 200 anyways $self->r->print('Welcome!'); $self->r->print(q[Go here: <a href="/moo">Mooville</a>]); $self->r->detach; # stop any dispatching now and exit } # referenced by /foo sub foo :Action { my $self = shift; my $stuff = $self->r->param('stuff'); $self->r->print('Howdy!'); } sub stream_this :Action { my $self = shift; # stop dispatcher $self->dispatcher->dispatching(0); $self->server->header_out('ETag' => 'fakeetag'); $self->server->header_out('Cache-Control' => 'public, max-age=31536000'); $self->server->send_http_header('text/html'); $self->server->print('This was directly streamed'); } # referenced by /moo/whatever sub moo :ActionMatch { my $self = shift; my @args = $self->r->matches; $self->r->print('Howdy: ' . $args[0]); } # referenced by /king/whatever/snake/whatever sub beavers :ActionRegex('king/(.*)/snake/(.*)') { my $self = shift; my @args = $self->matches; $self->r->print("roar: $args[0], $args[1]"); } }
Copyright 2011, 2012 Ohio-Pennsylvania Software, LLC.
This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.
To install Drogo, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Drogo
CPAN shell
perl -MCPAN -e shell install Drogo
For more information on module installation, please visit the detailed CPAN module installation guide.