Maypole::Manual - The Maypole Manual
The Maypole documentation is arranged over several files; this is the right one to start with, as it provides an overview of the entire set of Maypole manuals, with a brief description of each. Some of these manuals are not yet finished, but they should still be useful.
- Maypole::Manual::About - Overview of the Project
This document is a general introduction to Maypole: what it is, what it does and how it works.
Maypole is a framework for Web development. At the basic level, it converts a URL like
http://www.mysite.com/product/display/12into a method call such as "perform the
displaymethod on item
producttable" and then shows the result: here, presumably, a description of item
12in your product database,
It is based on Model-View-Controller (MVC), a design paradigm in which each major aspect of an application's operation is handled by a different and totally separate system).
Basic installation instructions are given. A sample Web application--the Beer database--is introduced, set up, and discussed. Finally, the path a Maypole request takes as it moves through the system is described.
- Maypole::Manual::Model - Model Classes *
This document introduces the model class, which controls the interaction between Maypole and your database. The use of "actions"--method calls that operate on your database--is discussed. Maypole's default model class is Class::DBI, which basically creates a class for each table in your database and provides a variety of convenient methods for manipulating each table and its relations. It integrates very smoothly with Maypole's default view class, the Template Toolkit.
- Maypole::Manual::View - View Classes *
This document is an extensive discussion of Maypole's view class, which takes the data produced by the model (see above) and sends it through a templating system in order to produce output. It focusses chiefly on the Template Toolkit, which is Maypole's default templating system, but discusses other possibilities.
- Maypole::Manual::StandardTemplates - Standard actions and templates *
This document discusses the standard actions and templates that Maypole uses. The standard actions (method calls that operate on your database) include
list, which generates a paged list of a table suitable for browsing, and
search, which handles a search query and generates search results.
The standard templates, which generate output for display on the Web, also include
list, which displays the entries in a table, and
search, which displays the result of a search.
You'll note that most actions are associated with templates.
This document also introduces the theory behind Maypole's actions and templates, showing you how to write your own so that you can have a highly customized application.
- Maypole::Manual::Workflow - Description of the Request Workflow
This is a technical document that describes the progress of a request through the entire Maypole system. It should be of interest chiefly to those people hacking on Maypole itself, and not to most of those who are using it.
- Maypole::Manual::Beer - The Beer Database Revisited *
This document gives a close look at the Beer database that was introduced in Maypole::Manual::About.
- Maypole::Manual::Request - The Request Cookbook
This extensive document is Maypole's main "How do I do X?" FAQ. It provides a wide variety of cookbook-like techniques that are useful both for themselves, and as examples of what sort of things can be done with Maypole processes.
This is an example of how to construct a large Web application in Maypole: a "social network", similar to Friendster and Orkut. It shows, specifically, the database structure and the variety of customized techniques that make such a system work.
- Maypole::Manual::IBuySpy - Case Study: iBuySpy *
This is an example of the
ASP.NETsample portal application ported to Maypole. http://www.ibuyspy.com is a fictional e-commerce site that is relatively sophisticated. It is much better as a Maypole application.
* indicates incomplete chapters.
The Maypole Manual was written by Simon Cozens. A generous grant from the Perl Foundation in the first quarter of 2004 funded some of the chapters of this manual.
This overview was rewritten by Jesse Sheidlower,
jester#panix.com, based on Simon Cozens' original Overview document.
In December 2004, Dave Howorth,
dave.howorth#acm.org kindly donated some of his spare time to improve the structure of the manual and bring it up to date.