Maypole::Application - Universal Maypole Frontend


NAME

Maypole::Application - Universal Maypole Frontend


SYNOPSIS

    use Maypole::Application;
    use Maypole::Application qw(Config::YAML);
    use Maypole::Application qw(-Debug Config::YAML -Setup);
    use Maypole::Application qw(Config::YAML Loader -Setup -Debug);
    use Maypole::Application qw(-Debug2 MasonX AutoUntaint);


DESCRIPTION

This is a universal frontend for mod_perl1, mod_perl2, HTML::Mason and CGI.

Automatically determines the appropriate frontend for your environment (unless you want to use the MasonX::Maypole manpage, in which case include MasonX in the arguments).

Loads plugins supplied in the use statement.

Responds to flags supplied in the use statement.

Initializes the application's configuration object.

You can omit the Maypole::Plugin:: prefix from plugins. So Maypole::Plugin::Config::YAML becomes Config::YAML.

    use Maypole::Application qw(Config::YAML);

You can also set special flags like -Setup, -Debug and -Init.

    use Maypole::Application qw(-Debug Config::YAML -Setup);

The position of plugins in the chain is important, because they are loaded/executed in the same order they appear.


FRONTEND

Under mod_perl (1 or 2), selects the Apache::MVC manpage.

Otherwise, selects the CGI::Maypole manpage.

If MasonX is specified, sets the MasonX::Maypole manpage as the frontend. This currently also requires a mod_perl environment.


FLAGS

-Setup
    use Maypole::Application qw(-Setup);

is equivalent to

    use Maypole::Application;
    MyApp->setup;

Note that no options are passed to setup(). You must ensure that the required model config parameters are set in MyApp->config. See the Maypole::Config manpage for more information.

-Init
    use Maypole::Application qw(-Setup -Init);
    
is equivalent to
    use Maypole::Application;
    MyApp->setup;
    MyApp->init;
    
Note that the C<-Setup> flag is required for the C<-Init> flag to work.

In persistent environments (e.g. mod_perl), it is useful to call init once in the parent server, rather than at the beginning of the first request to each child server, in order to share the view code loaded during init. Note that you must supply all the config data to your app before calling setup and init, probably by using one of the Maypole::Plugin::Config::* plugins.

-Debug
    use Maypole::Application qw(-Debug);

is equivalent to

    use Maypole::Application;
    sub debug { 1 }

You can specify a higher debug level by saying -Debug2 etc.


AUTHOR

Sebastian Riedel, sri@oook.de Idea by Marcus Ramberg, marcus@thefeed.no


LICENSE

You may distribute this code under the same terms as Perl itself.

 Maypole::Application - Universal Maypole Frontend