1Mojolicious::Guides(3)User Contributed Perl DocumentationMojolicious::Guides(3)
2
3
4

NAME

6       Mojolicious::Guides - The Mojolicious Guide to the Galaxy
7

DON'T PANIC!

9       The Mojolicious <https://mojolicious.org> documentation is structured
10       into three parts. The "TUTORIAL" everyone starts with, the "GUIDES"
11       that explain all major features in detail, and the "API" reference
12       listing all available classes.
13
14       Some parts of the documentation only use the Mojolicious::Lite micro
15       web framework for examples, but that's merely a convenience for the
16       reader. Almost all features are exactly the same for full Mojolicious
17       applications.
18

BASICS

20   Learning Perl
21       If you are new to Perl, we recommend Learn Perl in 2 hours 30 minutes
22       <https://qntm.org/perl_en> for a quick introduction, or the Modern Perl
23       book <https://pragprog.com/book/swperl/modern-perl-fourth-edition>,
24       freely available in many formats. Both are excellent introductions to
25       the language. For more books and documentation, check out
26       learn.perl.org <https://learn.perl.org/>.
27
28   Learning Web Technologies
29       All web development starts with HTML, CSS and JavaScript, to learn the
30       basics we recommend the Mozilla Developer Network
31       <https://developer.mozilla.org/en-US/docs/Web>. And if you want to know
32       more about how browsers and web servers actually communicate, there's
33       also a very nice introduction to HTTP
34       <https://developer.mozilla.org/en-US/docs/Web/HTTP>.
35

CONVENTIONS

37   Modern Perl
38       Mojolicious uses a modern subset of Perl exclusively, and therefore all
39       documentation assumes that strict, warnings, utf8 and Perl 5.16
40       features are enabled, even if examples don't specifically mention it.
41
42         use strict;
43         use warnings;
44         use utf8;
45         use feature ':5.16';
46
47       Some modules, like Mojo::Base and Mojolicious::Lite, will enable them
48       for you automatically, whenever they are used.
49
50   Signatures
51       On Perl 5.20+ you can also use the "-signatures" flag with Mojo::Base
52       to enable support for subroutine signatures. Signatures are used in all
53       examples for clarity, even when "-signatures" is omitted for brevity.
54
55   Variable names
56       For brevity and clarity, example variables will reflect the type of
57       data the API uses. For instance, $bytes or $chars to distinguish
58       whether it is encoded bytes or decoded characters in a Perl string,
59       $bool if the value just indicates true or false, $c to denote a
60       Mojolicious::Controller object, or $app to denote the application
61       object.
62

TUTORIAL

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

GUIDES

73       Mojolicious::Guides::Growing
74         Starting a Mojolicious::Lite prototype from scratch and growing it
75         into a well-structured Mojolicious application.
76
77       Mojolicious::Guides::Routing
78         Simple and fun introduction to the Mojolicious router.
79
80       Mojolicious::Guides::Rendering
81         Generating content with the Mojolicious renderer.
82
83       Mojolicious::Guides::Testing
84         Powerful yet elegant testing techniques and tools for Mojolicious and
85         other web applications.
86
87       Mojolicious::Guides::Cookbook
88         Cooking with Mojolicious, recipes for every taste.
89
90       Mojolicious::Guides::Contributing
91         Become a part of the ongoing Mojolicious development.
92
93       Mojolicious::Guides::FAQ
94         Answers to the most frequently asked questions.
95

HIGHLIGHTS

97       Mojolicious and Mojolicious::Lite are the sum of many parts, built on
98       top of the Mojo web development toolkit.  Small building blocks that
99       can be used independently for all kinds of applications, these are the
100       most prominent ones.
101
102       Mojo::UserAgent
103         Full featured non-blocking I/O HTTP and WebSocket user agent.
104
105       Mojo::DOM
106         Very fun and minimalistic HTML/XML DOM parser with CSS selector
107         support.
108
109       Mojo::JSON
110         Minimalistic JSON implementation that just works.
111
112       Mojo::Server::Daemon
113         Full featured, highly portable non-blocking I/O HTTP and WebSocket
114         server, with self-restart support through Mojo::Server::Morbo,
115         perfect for development and testing.
116
117       Mojo::Server::Prefork
118         Full featured, UNIX optimized, preforking non-blocking I/O HTTP and
119         WebSocket server with support for zero downtime software upgrades
120         (hot deployment) through Mojo::Server::Hypnotoad.
121
122       Mojo::Server::CGI, Mojo::Server::PSGI
123         Transparent CGI and PSGI support out of the box.
124
125       Mojo::IOLoop
126         A minimalistic event loop with support for multiple reactor backends.
127
128       Mojo::Template
129         Very Perl-ish and minimalistic template system.
130
131       Test::Mojo
132         Testing toolkit for web applications.
133
134       ojo
135         Fun one-liners using everything above.
136

FULL-STACK

138       These modules are not part of the Mojolicious distribution, but have
139       been designed to be used with it and are being developed under the same
140       umbrella.
141
142       Mojo::Pg
143         A tiny wrapper around DBD::Pg that makes PostgreSQL
144         <https://www.postgresql.org> a lot of fun to use with Mojolicious.
145         Perform queries blocking and non-blocking, use all SQL features
146         <https://www.postgresql.org/docs/current/static/sql.html> PostgreSQL
147         has to offer, generate CRUD queries from data structures, manage your
148         database schema with migrations and build scalable real-time web
149         applications with the publish/subscribe pattern.
150
151         Examples: The minimal chat <https://github.com/mojolicious/mojo-
152         pg/tree/master/examples/chat.pl> application will show you how to
153         scale WebSockets to multiple servers, and the well-structured blog
154         <https://github.com/mojolicious/mojo-pg/tree/master/examples/blog>
155         application how to apply the MVC design pattern in practice.
156
157       Minion
158         A full featured job queue for Mojolicious with support for multiple
159         backends (such as PostgreSQL <https://www.postgresql.org>). Job
160         queues allow you to process time and/or computationally intensive
161         tasks in background processes, outside of the request/response
162         lifecycle. Among those tasks you'll commonly find image resizing,
163         spam filtering, HTTP downloads, building tarballs, warming caches and
164         basically everything else you can imagine that's not super fast.
165
166         Examples: The link checker
167         <https://github.com/mojolicious/minion/tree/master/examples/linkcheck>
168         will show you how to integrate background jobs into well-structured
169         Mojolicious applications.
170

API

172       This is the class hierarchy of the Mojolicious distribution.
173
174       • Mojo
175
176       • Mojo::Base
177
178         • Mojolicious
179
180           • Mojo::HelloWorld
181
182           • Mojolicious::Lite
183
184         • Mojo::Cache
185
186         • Mojo::Cookie
187
188           • Mojo::Cookie::Request
189
190           • Mojo::Cookie::Response
191
192         • Mojo::DOM::CSS
193
194         • Mojo::DOM::HTML
195
196         • Mojo::Date
197
198         • Mojo::EventEmitter
199
200           • Mojo::Asset
201
202             • Mojo::Asset::File
203
204             • Mojo::Asset::Memory
205
206           • Mojo::Content
207
208             • Mojo::Content::MultiPart
209
210             • Mojo::Content::Single
211
212           • Mojo::IOLoop
213
214           • Mojo::IOLoop::Client
215
216           • Mojo::IOLoop::Server
217
218           • Mojo::IOLoop::Stream
219
220           • Mojo::IOLoop::Subprocess
221
222           • Mojo::IOLoop::TLS
223
224           • Mojo::Log
225
226           • Mojo::Message
227
228             • Mojo::Message::Request
229
230             • Mojo::Message::Response
231
232           • Mojo::Reactor
233
234             • Mojo::Reactor::Poll
235
236               • Mojo::Reactor::EV
237
238           • Mojo::Server
239
240             • Mojo::Server::CGI
241
242             • Mojo::Server::Daemon
243
244               • Mojo::Server::Prefork
245
246             • Mojo::Server::PSGI
247
248           • Mojo::Transaction
249
250             • Mojo::Transaction::HTTP
251
252             • Mojo::Transaction::WebSocket
253
254           • Mojo::UserAgent
255
256           • Mojolicious::Plugins
257
258         • Mojo::Exception
259
260         • Mojo::Headers
261
262         • Mojo::JSON::Pointer
263
264         • Mojo::Parameters
265
266         • Mojo::Path
267
268         • Mojo::Promise
269
270           • Mojo::IOLoop::Delay
271
272         • Mojo::Server::Hypnotoad
273
274         • Mojo::Server::Morbo
275
276         • Mojo::Server::Morbo::Backend
277
278           • Mojo::Server::Morbo::Backend::Poll
279
280         • Mojo::Template
281
282         • Mojo::URL
283
284         • Mojo::Upload
285
286         • Mojo::UserAgent::CookieJar
287
288         • Mojo::UserAgent::Proxy
289
290         • Mojo::UserAgent::Server
291
292         • Mojo::UserAgent::Transactor
293
294         • Mojolicious::Command
295
296           • Mojolicious::Command::cgi
297
298           • Mojolicious::Command::daemon
299
300           • Mojolicious::Command::eval
301
302           • Mojolicious::Command::get
303
304           • Mojolicious::Command::prefork
305
306           • Mojolicious::Command::psgi
307
308           • Mojolicious::Command::routes
309
310           • Mojolicious::Command::version
311
312           • Mojolicious::Command::Author::cpanify
313
314           • Mojolicious::Command::Author::generate::app
315
316           • Mojolicious::Command::Author::generate::dockerfile
317
318           • Mojolicious::Command::Author::generate::lite_app
319
320           • Mojolicious::Command::Author::generate::makefile
321
322           • Mojolicious::Command::Author::generate::plugin
323
324           • Mojolicious::Command::Author::inflate
325
326           • Mojolicious::Commands
327
328             • Mojolicious::Command::Author::generate
329
330         • Mojolicious::Controller
331
332         • Mojolicious::Plugin
333
334           • Mojolicious::Plugin::Config
335
336             • Mojolicious::Plugin::JSONConfig
337
338               • Mojolicious::Plugin::NotYAMLConfig
339
340           • Mojolicious::Plugin::DefaultHelpers
341
342           • Mojolicious::Plugin::EPLRenderer
343
344             • Mojolicious::Plugin::EPRenderer
345
346           • Mojolicious::Plugin::HeaderCondition
347
348           • Mojolicious::Plugin::Mount
349
350           • Mojolicious::Plugin::TagHelpers
351
352         • Mojolicious::Renderer
353
354         • Mojolicious::Routes::Match
355
356         • Mojolicious::Routes::Pattern
357
358         • Mojolicious::Routes::Route
359
360           • Mojolicious::Routes
361
362         • Mojolicious::Sessions
363
364         • Mojolicious::Static
365
366         • Mojolicious::Types
367
368         • Mojolicious::Validator
369
370         • Mojolicious::Validator::Validation
371
372         • Test::Mojo
373
374       • Mojo::ByteStream
375
376       • Mojo::Collection
377
378       • Mojo::DynamicMethods
379
380       • Mojo::DOM
381
382       • Mojo::File
383
384         • Mojo::Home
385
386       • Mojo::JSON
387
388       • Mojo::Loader
389
390       • Mojo::Util
391
392       • Mojo::WebSocket
393
394       • ojo
395

MORE

397       A lot more documentation and examples by many different authors can be
398       found in the Mojolicious wiki
399       <https://github.com/mojolicious/mojo/wiki>.
400

SUPPORT

402       If you have any questions the documentation might not yet answer, don't
403       hesitate to ask in the Forum <https://forum.mojolicious.org> or the
404       official IRC channel "#mojo" on "chat.freenode.net" (chat now!
405       <https://webchat.freenode.net/#mojo>).
406
407
408
409perl v5.32.1                      2021-02-07            Mojolicious::Guides(3)
Impressum