Permalink
Fetching contributors…
Cannot retrieve contributors at this time
136 lines (81 sloc) 3.19 KB
Dancer
The easiest way to write a webapp with Perl
=== ABOUT ===
This project is inspired by Ruby's Sinatra framework: a framework for building
web applications with minimal-effort, allowing a simple webapp to be created with
very few lines of code, but allowing the flexibility to scale to much more
complex applications.
=== NEWS ===
Dancer's development moves very fast, to stay tuned follow
sukria on Twitter: http://twitter.com/sukria or his blog
http://sukria.net/fr/tag/Dancer
See also the project on Github for the latest changes:
http://github.com/sukria/Dancer
=== EXAMPLE ===
To create a new Dancer application, use the helper script "dancer" provided
with this distribution:
$ dancer -a mywebapp
+ mywebapp
+ mywebapp/config.yml
+ mywebapp/views
+ mywebapp/views/layouts
[..]
You then have a new Dancer application in 'mywebapp', which is already a
functioning "Hello World" application, ready for you to work upon.
Here is an example of a webapp built with Dancer:
# webapp.pl
#!/usr/bin/perl
use Dancer;
get '/' => sub {
"Hello There!"
};
get '/hello/:name' => sub {
"Hey ".params->{name}.", how are you?";
};
post '/new' => sub {
"creating new entry: ".params->{name};
};
Dancer->dance;
When running this script, a webserver is running and ready to serve:
$ perl ./webapp.pl
>> Listening on 0.0.0.0:3000
== Entering the development dance floor ...
Then it's possible to access any route defined in the script:
$ curl http://localhost:3000/
Hello There!
=== DEPENDENCIES ===
Dancer depends on the following modules
- HTTP::Server::Simple::PSGI
- HTTP::Body
- Exception::Class
- MIME::Types
- URI
Optional modules may be needed if you want to use some features (but are not
required for a basic usage).
Dependency-checks for additional features are performed at runtime.
Most common modules you may want are:
- Template (for Template::Toolkit support)
- YAML (for configuration files)
- Plack (if you want to deploy your application with PSGI)
=== PRODUCTION MATTERS ===
This is a work in progress.
Dancer supports PSGI/Plack, to run a Dancer app with PSGI/Plack just bootstrap
your application with the helper script `dancer' like the following:
$ dancer -a MyWebApp
You'll find a file in there called `app.psgi', use this file to configure your
PSGI environment, as explained in the revelant documentation of your PSGI
server.
For instance, with plackup, just do the following:
$ plackup -a app.psgi
=== WEBSITE ===
For more details about the project, checkout the official website:
http://dancer.sukria.net/ or checkout the documentation at
http://search.cpan.org/dist/Dancer/
See also the Github project page: http://github.com/sukria/Dancer for the latest
changes.
=== REPORTING BUGS ===
Bug reports are appreciated and will receive prompt attention - the preferred
method is to raise them using Github's basic issue tracking system:
http://github.com/sukria/Dancer/issues
=== CONTACT ===
You can reach the development team on IRC: irc://irc.perl.org/#dancer