Tim Keefer > Gantry > Gantry::State::Simple

Download:
Gantry-3.64.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  9
Open  3
View/Report Bugs
Source  

NAME ^

Gantry::State::Simple - A simple state machine for Gantry

SYNOPSIS ^

This module implements a simple state machine to control the execution context within Gantry’s handler() method.

DESCRIPTION ^

When a request comes into Gantry a pre‐determined set of steps are executed. These pre‐determined steps can be termed "states", and the process can be called a "state machine". There are many ways to implement a "state machine", so this document will not get into the semantics of the term.

What this module does, is allow plugins to issue a redirect and have them take effect immediately. The default behavior is to have the redirect happen after the controllers have finished processing.

This is to allow a plugin to initialize properly. For example Gantry::Plugins::Session requires a redirect to /cookiecheck to see if the session cookie has been set. Under the default state handler, this redirect happens after the initial controller has finished processing.

So a race condition happens. You can not manipulate a session until the cookie has been established which doesn't happen until after the initial controller executes. This problem goes away after the redirect.

This module fixes the problem.

CONFIGURATION ^

To load a differant state machine you need to do the following:

use MyApp qw{ −StateMachine=Simple };

SEE ALSO ^

 Gantry
 Gantry::State::Default
 Gantry::State::Constants

AUTHOR ^

Kevin L. Esteb <kesteb@wsipc.org>

COPYRIGHT AND LICENSE ^

Copyright (C) 2008 Kevin L. Esteb

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.

syntax highlighting: