- Introduction
- Compare a full Mojolicious app to a lite app with the same functionality.
- See an example of DBIx::Class usage with Mojolicious
- See an example of tests for a Mojolicious app
- Both apps make use of the DBIx::Class schema.
- The schema is in lib/Schema.pm, lib/Schema/*
- The DBIx::Class schema connects to a provided sqlite3 database, test.db
- The controller tests create a new test.db, populated using fixtures from t/fixtures/*
- The schema tests use an in-memory sqlite3 database, populated using fixtures from t/fixtures/*
- Test::Database is a utility for populating the sqlite3 databases with fixtures from t/fixtures/*
Heroku is running Hypnotoad, the full featured UNIX optimized preforking non-blocking I/O HTTP 1.1 and WebSocket server built around the very well tested and reliable Mojo::Server::Daemon with IPv6, TLS, Bonjour, libev and hot deployment support that just works.
To easily deploy your own Mojolicious app to Heroku, check out Deploy Perl Mojolicious web apps to Heroku.
To run the full app:
morbo script/mojo_full
To run the lite app:
morbo mojolite
(Both the Full and Lite apps are identical in functionality)
Easy, one-step installation of modules:
curl -L cpanmin.us | perl - Mojolicious Modern::Perl DBIx::Class DateTime DateTime::Format::SQLite \ Time::Duration File::Slurp SQL::Translator
A minimum of Perl 5.10 is required. If your Perl is too old, Perlbrew is über easy to install!
If you must run on Perl 5.8, you can try a back-ported version of Mojolicious, but you're on your own :)
- lib/
- MojoFull.pm - Mojolicious Application
- MojoFull/ - Mojolicious Controllers
- Schema.pm - DBIx::Class model
- Schema/
- Result/ - DBIx::Class Result classes
- ResultSet/ - DBIx::Class ResultSet classes
- Test/
- Database.pm - Utility class for populating test fixtures
- public/ - Static files
- css/
- images/
- script/ - Utilities
- generate_schema - Generates DBIx::Class schema from database file
- mojo_full*
- new_db - Generates database file from DBIx::Class and fixtures
- t/ - Tests
- templates/
- blogs/ - Blogs.pm templates
- index.html.ep - Tag Helpers
- show.html.ep
- home/ - Home.pm templates
- photos/ - Photos.pm templates
- layouts/
- blogs/ - Blogs.pm templates
- mojolite - Mojolicious::Lite app, with all the application files listed above embedded
- README.md - This file