Provided by: libmojolicious-perl_7.59+dfsg-1ubuntu1_all bug

NAME

       Mojolicious::Guides - The Mojolicious Guide to the Galaxy

DON'T PANIC!

       We are constantly working on new documentation. Follow us on GitHub
       <http://github.com/kraih/mojo> or join the official IRC channel "#mojo" on "irc.perl.org"
       to get all the latest updates.

BASICS

       Learning Perl
         If you are new to Perl, we recommend Learn Perl in 2 hours 30 minutes
         <http://qntm.org/files/perl/perl.html> for a quick introduction, or the Modern Perl book
         <https://pragprog.com/book/swperl/modern-perl-fourth-edition>, freely available in many
         formats. Both are excellent introductions to the language. For more books and
         documentation, check out learn.perl.org <http://learn.perl.org/>.

       Learning Web Technologies
         All web development starts with HTML, CSS and JavaScript, to learn the basics we
         recommend the Mozilla Developer Network <https://developer.mozilla.org/en-US/docs/Web>.
         And if you want to know more about how browsers and web servers actually communicate,
         there's also a very nice introduction to HTTP <https://developer.mozilla.org/en-
         US/docs/Web/HTTP>.

CONVENTIONS

       Modern Perl
         Mojolicious uses a modern subset of Perl exclusively, and therefore all documentation
         assumes that strict, warnings, utf8 and Perl 5.10 features are enabled, even if examples
         don't specifically mention it.

           use strict;
           use warnings;
           use utf8;
           use feature ':5.10';

         Some modules, like Mojo::Base and Mojolicious::Lite, will enable them for you
         automatically, whenever they are used.

TUTORIAL

       Mojolicious::Guides::Tutorial
         A fast and fun way to get started developing web applications with Mojolicious. The
         tutorial introduces the Mojolicious::Lite micro web framework, which is only a thin
         wrapper around the full web framework. The simplified notation introduced in the
         tutorial is commonly used throughout the guides and is therefore considered a
         prerequisite, you should definitely take a look!

GUIDES

       Mojolicious::Guides::Growing
         Starting a Mojolicious::Lite prototype from scratch and growing it into a well-
         structured Mojolicious application.

       Mojolicious::Guides::Routing
         Simple and fun introduction to the Mojolicious router.

       Mojolicious::Guides::Rendering
         Generating content with the Mojolicious renderer.

       Mojolicious::Guides::Testing
         Powerful yet elegant testing techniques and tools for Mojolicious and other web
         applications.

       Mojolicious::Guides::Cookbook
         Cooking with Mojolicious, recipes for every taste.

       Mojolicious::Guides::Contributing
         Become a part of the ongoing Mojolicious development.

       Mojolicious::Guides::FAQ
         Answers to the most frequently asked questions.

HIGHLIGHTS

       Mojolicious and Mojolicious::Lite are the sum of many parts, built on top of the Mojo web
       development toolkit. Small building blocks that can be used independently for all kinds of
       applications, these are the most prominent ones.

       Mojo::UserAgent
         Full featured non-blocking I/O HTTP and WebSocket user agent.

       Mojo::DOM
         Very fun and minimalistic HTML/XML DOM parser with CSS selector support.

       Mojo::JSON
         Minimalistic JSON implementation that just works.

       Mojo::Server::Daemon
         Full featured, highly portable non-blocking I/O HTTP and WebSocket server, with self-
         restart support through Mojo::Server::Morbo, perfect for development and testing.

       Mojo::Server::Prefork
         Full featured, UNIX optimized, preforking non-blocking I/O HTTP and WebSocket server
         with support for zero downtime software upgrades (hot deployment) through
         Mojo::Server::Hypnotoad.

       Mojo::Server::CGI, Mojo::Server::PSGI
         Transparent CGI and PSGI support out of the box.

       Mojo::IOLoop
         A minimalistic event loop with support for multiple reactor backends.

       Mojo::Template
         Very Perl-ish and minimalistic template system.

       Test::Mojo
         Testing toolkit for web applications.

       ojo
         Fun one-liners using everything above.

SPIN-OFFS

       These modules are not part of the Mojolicious distribution, but have been designed to be
       used with it and are being developed under the same umbrella.

       Mojo::Pg
         A tiny wrapper around DBD::Pg that makes PostgreSQL <http://www.postgresql.org> a lot of
         fun to use with Mojolicious. Perform queries blocking and non-blocking, use all SQL
         features <https://www.postgresql.org/docs/current/static/sql.html> PostgreSQL has to
         offer, generate CRUD queries from data structures, manage your database schema with
         migrations and build scalable real-time web applications with the publish/subscribe
         pattern.

         And it comes with two great example applications <https://github.com/kraih/mojo-
         pg/tree/master/examples/> you can use for inspiration. The minimal chat
         <https://github.com/kraih/mojo-pg/tree/master/examples/chat.pl> application will show
         you how to scale WebSockets to multiple servers, and the well-structured blog
         <https://github.com/kraih/mojo-pg/tree/master/examples/blog> application how to apply
         the MVC design pattern in practice.

       Minion
         A full featured job queue for Mojolicious with support for multiple backends (such as
         PostgreSQL <http://www.postgresql.org>). Job queues allow you to process time and/or
         computationally intensive tasks in background processes, outside of the request/response
         lifecycle. Among those tasks you'll commonly find image resizing, spam filtering, HTTP
         downloads, building tarballs, warming caches and basically everything else you can
         imagine that's not super fast.

         And it comes with a great example application you can use for inspiration. The link
         checker <https://github.com/kraih/minion/tree/master/examples/linkcheck> will show you
         how to integrate background jobs into well-structured Mojolicious applications.

REFERENCE

       This is the class hierarchy of the Mojolicious distribution.

       • Mojo::Base

         • Mojo

           • Mojolicious

             • Mojo::HelloWorld

             • Mojolicious::Lite

         • Mojo::Cache

         • Mojo::Cookie

           • Mojo::Cookie::Request

           • Mojo::Cookie::Response

         • Mojo::DOM::CSS

         • Mojo::DOM::HTML

         • Mojo::Date

         • Mojo::EventEmitter

           • Mojo::Asset

             • Mojo::Asset::File

             • Mojo::Asset::Memory

           • Mojo::Content

             • Mojo::Content::MultiPart

             • Mojo::Content::Single

           • Mojo::IOLoop

           • Mojo::IOLoop::Client

           • Mojo::IOLoop::Server

           • Mojo::IOLoop::Stream

           • Mojo::IOLoop::TLS

           • Mojo::Log

           • Mojo::Message

             • Mojo::Message::Request

             • Mojo::Message::Response

           • Mojo::Reactor

             • Mojo::Reactor::Poll

               • Mojo::Reactor::EV

           • Mojo::Server

             • Mojo::Server::CGI

             • Mojo::Server::Daemon

               • Mojo::Server::Prefork

             • Mojo::Server::PSGI

           • Mojo::Transaction

             • Mojo::Transaction::HTTP

             • Mojo::Transaction::WebSocket

           • Mojo::UserAgent

           • Mojolicious::Plugins

         • Mojo::Exception

         • Mojo::Headers

         • Mojo::IOLoop::Subprocess

         • Mojo::JSON::Pointer

         • Mojo::Parameters

         • Mojo::Path

         • Mojo::Promise

           • Mojo::IOLoop::Delay

         • Mojo::Server::Hypnotoad

         • Mojo::Server::Morbo

         • Mojo::Server::Morbo::Backend

           • Mojo::Server::Morbo::Backend::Poll

         • Mojo::Template

         • Mojo::URL

         • Mojo::Upload

         • Mojo::UserAgent::CookieJar

         • Mojo::UserAgent::Proxy

         • Mojo::UserAgent::Server

         • Mojo::UserAgent::Transactor

         • Mojolicious::Command

           • Mojolicious::Command::cgi

           • Mojolicious::Command::cpanify

           • Mojolicious::Command::daemon

           • Mojolicious::Command::eval

           • Mojolicious::Command::generate::app

           • Mojolicious::Command::generate::lite_app

           • Mojolicious::Command::generate::makefile

           • Mojolicious::Command::generate::plugin

           • Mojolicious::Command::get

           • Mojolicious::Command::inflate

           • Mojolicious::Command::prefork

           • Mojolicious::Command::psgi

           • Mojolicious::Command::routes

           • Mojolicious::Command::test

           • Mojolicious::Command::version

           • Mojolicious::Commands

             • Mojolicious::Command::generate

         • Mojolicious::Controller

         • Mojolicious::Plugin

           • Mojolicious::Plugin::Config

             • Mojolicious::Plugin::JSONConfig

           • Mojolicious::Plugin::DefaultHelpers

           • Mojolicious::Plugin::EPLRenderer

             • Mojolicious::Plugin::EPRenderer

           • Mojolicious::Plugin::HeaderCondition

           • Mojolicious::Plugin::Mount

           • Mojolicious::Plugin::PODRenderer

           • Mojolicious::Plugin::TagHelpers

         • Mojolicious::Renderer

         • Mojolicious::Routes::Match

         • Mojolicious::Routes::Pattern

         • Mojolicious::Routes::Route

           • Mojolicious::Routes

         • Mojolicious::Sessions

         • Mojolicious::Static

         • Mojolicious::Types

         • Mojolicious::Validator

         • Mojolicious::Validator::Validation

         • Test::Mojo

       • Mojo::ByteStream

       • Mojo::Collection

       • Mojo::DOM

       • Mojo::File

         • Mojo::Home

       • Mojo::JSON

       • Mojo::Loader

       • Mojo::Util

       • Mojo::WebSocket

       • ojo

MORE

       A lot more documentation and examples by many different authors can be found in the
       Mojolicious wiki <http://github.com/kraih/mojo/wiki>.

SUPPORT

       If you have any questions the documentation might not yet answer, don't hesitate to ask on
       the mailing list <http://groups.google.com/group/mojolicious> or the official IRC channel
       "#mojo" on "irc.perl.org" (chat now!
       <https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org>).