NAME

Mojolicious::Guides::Cheatsheet - Reference

OVERVIEW

This document contains a concise all-purpose reference.

RESERVED STASH VALUES

Besides everything prefixed with mojo. there are a few stash values that are reserved for routes and the renderer.

action

$r->route('/welcome')->to(action => 'hello');

Action to dispatch to.

app

$r->route('/welcome')->to(app => MyApp->new);

Embedded application to dispatch to.

cb

$r->route('/welcome')->to(cb => sub {...});

Callback to dispatch to.

class

$r->route('/welcome')->to(class => 'Greeting');

Camelized alternative to controller.

controller

$r->route('/welcome')->to(controller => 'greetings');

Controller to dispatch to.

data

$self->render(data => 'raw bytes');

Turn raw bytes into a response.

exception

<%= $exception %>

Mojo::Exception object for exception templates.

extends

$self->render(extends => 'template');

Template to extend.

format

$self->render(format => 'rss');

Format to render.

handler

$self->render(handler => 'ep');

Handler to use for rendering.

inline

$self->render(inline => '<%= 1 + 1%>');

Inline template to render.

json

$self->render(json => {foo => 23});

Turn Perl structure into JSON response.

layout

$self->render(layout => 'green');

Layout to render.

method

$r->route('/welcome')->to(method => 'hello');

Alternative to action.

namespace

$r->route('/welcome')->to(namespace => 'TestApp', method => 'lulz');

Namespace to dispatch to.

partial

my $result = $self->render(partial => 1);

Return rendering result instead of turning it into a response.

path

$r->route('/welcome')->to(path => '/test', app => MyApp->new);

Base path to use for dispatching to embedded applications.

status

$self->render(status => 404);

Status code to use for rendered response.

template

$self->render(template => 'bye');

Template to render.

text

$self->render(text => 'Hello World!');

Turn characters into a response.

ENVIRONMENT VARIABLES

Many parts of Mojolicious can be tuned with environment variables. Debug environment variables are excluded because they are for developer use only.

MOJO_APP

Decides which Mojolicious or Mojo application will be used, should always contain a class name like MyApp, usually defaults to Mojo::HelloWorld.

MOJO_APP=MyApp

MOJO_CA_FILE

The path to the TLS CA authority file, should always contain a path like /etc/tls/cacerts.pem. Note that IO::Socket::SSL must be installed for TLS support.

MOJO_CA_FILE=/etc/tls/cacerts.pem

MOJO_CHUNK_SIZE

Chunk size used for IO operations in bytes, a bigger chunk size speeds up IO operations but will also use more memory, defaults to 256000.

MOJO_CHUNK_SIZE=1024

MOJO_CONFIG

Config file to be used by Mojolicious::Plugin::Config and Mojolicious::Plugin::JsonConfig, quite useful for testing.

MOJO_CONFIG=myapp.conf

MOJO_DNS_SERVER

DNS server to use for non-blocking lookups.

MOJO_DNS_SERVER=8.8.8.8

MOJO_HOME

Home directory for the Mojolicious application, should always contain a path like /home/sri/myapp.

MOJO_HOME=/home/sri/myapp

MOJO_LOG_LEVEL

Log level for the Mojolicious application, should contain a valid log level like debug or error.

MOJO_LOG_LEVEL=debug
MOJO_LOG_LEVEL=error

MOJO_MAX_LINE_SIZE

Maximum line size for HTTP message start lines and headers in bytes, defaults to 10240.

MOJO_MAX_LINE_SIZE=2048

MOJO_MAX_MEMORY_SIZE

Maximum size in bytes for HTTP content to keep in memory, bigger content will be written to temporary files, defaults to 256000.

MOJO_MAX_MEMORY_SIZE=2048

MOJO_MAX_MESSAGE_SIZE

Maximum size for HTTP messages in bytes, defaults to 5242880.

MOJO_MAX_MESSAGE_SIZE=1024

MOJO_MAX_REDIRECTS

MOJO_MAX_REDIRECTS=3

Maximum number of redirects Mojo::UserAgent will follow, defaults to 0.

MOJO_MODE

Run mode for the Mojolicious application, should contain a valid mode like development or production.

MOJO_MODE=development
MOJO_MODE=production

MOJO_NO_BONJOUR

Disable Bonjour support. Note that Net::Rendezvous::Publish must be installed for Bonjour support.

MOJO_NO_BONJOUR=1

MOJO_NO_DETECT

Disable Mojolicious deployment environment detection.

MOJO_NO_DETECT=1

MOJO_NO_IPV6

Disable IPv6 support. Note that IO::Socket::IP must be installed for IPv6 support.

MOJO_NO_IPV6=1

MOJO_NO_TLS

Disable TLS support, this might result in slightly better performance and less memory use. Note that IO::Socket::SSL must be installed for TLS support.

MOJO_NO_TLS=1

MOJO_POLL

Force poll mainloop for IO operations, this should only be used for testing since other mainloops are generally faster and scale better.

MOJO_POLL=1

MOJO_PROXY

Enable automatic HTTP and HTTPS proxy detection in Mojo::UserAgent, for security reasons this is disabled by default.

MOJO_PROXY=1

MOJO_RELOAD

Enable Mojolicious application reloading, changes to your application will be detected automatically so you don't have to restart the server manually.

MOJO_RELOAD=1

MOJO_REVERSE_PROXY

Enable reverse proxy support for Mojolicious application.

MOJO_REVERSE_PROXY=1

MOJO_STATIC_CLASS

Class the Mojolicious static file dispatcher should use to find DATA templates, defaults to main.

MOJO_STATIC_CLASS=MyApp

MOJO_TEMPLATE_CLASS

Class the Mojolicious renderer should use to find DATA templates, defaults to main.

MOJO_TEMPLATE_CLASS=MyApp

MOJO_TMPDIR

Directory for temporary files like huge uploads, by default a random platform specific temporary directory will be used.

MOJO_TMPDIR=/tmp/mojo

MORE

You can continue with Mojolicious::Guides now or take a look at the Mojolicious wiki http://github.com/kraih/mojo/wiki, which contains a lot more documentation and examples by many different authors.