|
NAMEMojolicious::Lite - Micro real-time web frameworkSYNOPSIS# Automatically enables "strict", "warnings", "utf8" and Perl 5.16 features use Mojolicious::Lite -signatures; # Route with placeholder get '/:foo' => sub ($c) { my $foo = $c->param('foo'); $c->render(text => "Hello from $foo."); }; # Start the Mojolicious command system app->start; DESCRIPTIONMojolicious::Lite is a tiny domain specific language built around Mojolicious, made up of only about a dozen Perl functions.On Perl 5.20+ you can also use a "-signatures" flag to enable support for subroutine signatures. use Mojolicious::Lite -signatures; get '/:foo' => sub ($c) { my $foo = $c->param('foo'); $c->render(text => "Hello from $foo."); }; app->start; See Mojolicious::Guides::Tutorial for more! GROWINGWhile Mojolicious::Guides::Growing will give you a detailed introduction to growing a Mojolicious::Lite prototype into a well-structured Mojolicious application, here we have collected a few snippets that illustrate very well just how similar both of them are.RoutesThe functions "get", "post" and friends all have equivalent methods.# Mojolicious::Lite get '/foo' => sub ($c) { $c->render(text => 'Hello World!'); }; # Mojolicious sub startup ($self) { my $routes = $self->routes; $routes->get('/foo' => sub ($c) { $c->render(text => 'Hello World!'); }); } ApplicationThe application object you can access with the function "app" is the first argument passed to the "startup" method.# Mojolicious::Lite app->max_request_size(16777216); # Mojolicious sub startup ($self) { $self->max_request_size(16777216); } PluginsInstead of the "plugin" function you just use the method "plugin" in Mojolicious.# Mojolicious::Lite plugin 'Config'; # Mojolicious sub startup ($self) { $self->plugin('Config'); } HelpersSimilar to plugins, instead of the "helper" function you just use the method "helper" in Mojolicious.# Mojolicious::Lite helper two => sub ($c) { return 1 + 1; }; # Mojolicious sub startup ($self) { $self->helper(two => sub ($c) { return 1 + 1; }); } UnderInstead of sequential function calls, we can use methods to build a tree with nested routes, that much better illustrates how routes work internally.# Mojolicious::Lite under '/foo'; get '/bar' => sub ($c) {...}; # Mojolicious sub startup ($self) { my $routes = $self->routes; my $foo = $routes->under('/foo'); $foo->get('/bar' => sub ($c) {...}); } FUNCTIONSMojolicious::Lite implements the following functions, which are automatically exported.anymy $route = any '/:foo' => sub ($c) {...}; my $route = any '/:foo' => sub ($c) {...} => 'name'; my $route = any '/:foo' => {foo => 'bar'} => sub ($c) {...}; my $route = any '/:foo' => [foo => qr/\w+/] => sub ($c) {...}; my $route = any ['GET', 'POST'] => '/:foo' => sub ($c) {...}; my $route = any ['GET', 'POST'] => '/:foo' => [foo => qr/\w+/] => sub ($c) {...}; my $route = any ['GET', 'POST'] => '/:foo' => (agent => qr/Firefox/) => sub ($c) {...}; Generate route with "any" in Mojolicious::Routes::Route, matching any of the listed HTTP request methods or all. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information. appmy $app = app; Returns the Mojolicious::Lite application object, which is a subclass of Mojolicious. # Use all the available attributes and methods app->log->level('error'); app->defaults(foo => 'bar'); delmy $route = del '/:foo' => sub ($c) {...}; my $route = del '/:foo' => sub ($c) {...} => 'name'; my $route = del '/:foo' => {foo => 'bar'} => sub ($c) {...}; my $route = del '/:foo' => [foo => qr/\w+/] => sub ($c) {...}; my $route = del '/:foo' => (agent => qr/Firefox/) => sub ($c) {...}; Generate route with "delete" in Mojolicious::Routes::Route, matching only "DELETE" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information. getmy $route = get '/:foo' => sub ($c) {...}; my $route = get '/:foo' => sub ($c) {...} => 'name'; my $route = get '/:foo' => {foo => 'bar'} => sub ($c) {...}; my $route = get '/:foo' => [foo => qr/\w+/] => sub ($c) {...}; my $route = get '/:foo' => (agent => qr/Firefox/) => sub ($c) {...}; Generate route with "get" in Mojolicious::Routes::Route, matching only "GET" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information. groupgroup {...}; Start a new route group. helperhelper foo => sub ($c, @args) {...}; Add a new helper with "helper" in Mojolicious. hookhook after_dispatch => sub ($c) {...}; Share code with "hook" in Mojolicious. optionsmy $route = options '/:foo' => sub ($c) {...}; my $route = options '/:foo' => sub ($c) {...} => 'name'; my $route = options '/:foo' => {foo => 'bar'} => sub ($c) {...}; my $route = options '/:foo' => [foo => qr/\w+/] => sub ($c) {...}; my $route = options '/:foo' => (agent => qr/Firefox/) => sub ($c) {...}; Generate route with "options" in Mojolicious::Routes::Route, matching only "OPTIONS" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information. patchmy $route = patch '/:foo' => sub ($c) {...}; my $route = patch '/:foo' => sub ($c) {...} => 'name'; my $route = patch '/:foo' => {foo => 'bar'} => sub ($c) {...}; my $route = patch '/:foo' => [foo => qr/\w+/] => sub ($c) {...}; my $route = patch '/:foo' => (agent => qr/Firefox/) => sub ($c) {...}; Generate route with "patch" in Mojolicious::Routes::Route, matching only "PATCH" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information. pluginplugin SomePlugin => {foo => 23}; Load a plugin with "plugin" in Mojolicious. postmy $route = post '/:foo' => sub ($c) {...}; my $route = post '/:foo' => sub ($c) {...} => 'name'; my $route = post '/:foo' => {foo => 'bar'} => sub ($c) {...}; my $route = post '/:foo' => [foo => qr/\w+/] => sub ($c) {...}; my $route = post '/:foo' => (agent => qr/Firefox/) => sub ($c) {...}; Generate route with "post" in Mojolicious::Routes::Route, matching only "POST" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information. putmy $route = put '/:foo' => sub ($c) {...}; my $route = put '/:foo' => sub ($c) {...} => 'name'; my $route = put '/:foo' => {foo => 'bar'} => sub ($c) {...}; my $route = put '/:foo' => [foo => qr/\w+/] => sub ($c) {...}; my $route = put '/:foo' => (agent => qr/Firefox/) => sub ($c) {...}; Generate route with "put" in Mojolicious::Routes::Route, matching only "PUT" requests. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information. undermy $route = under sub ($c) {...}; my $route = under '/:foo' => sub ($c) {...}; my $route = under '/:foo' => {foo => 'bar'}; my $route = under '/:foo' => [foo => qr/\w+/]; my $route = under '/:foo' => (agent => qr/Firefox/); my $route = under [format => ['json', 'yaml']]; Generate nested route with "under" in Mojolicious::Routes::Route, to which all following routes are automatically appended. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information. websocketmy $route = websocket '/:foo' => sub ($c) {...}; my $route = websocket '/:foo' => sub ($c) {...} => 'name'; my $route = websocket '/:foo' => {foo => 'bar'} => sub ($c) {...}; my $route = websocket '/:foo' => [foo => qr/\w+/] => sub ($c) {...}; my $route = websocket '/:foo' => (agent => qr/Firefox/) => sub ($c) {...}; Generate route with "websocket" in Mojolicious::Routes::Route, matching only WebSocket handshakes. See Mojolicious::Guides::Tutorial and Mojolicious::Guides::Routing for more information. ATTRIBUTESMojolicious::Lite inherits all attributes from Mojolicious.METHODSMojolicious::Lite inherits all methods from Mojolicious.SEE ALSOMojolicious, Mojolicious::Guides, <https://mojolicious.org>.
Visit the GSP FreeBSD Man Page Interface. |