State Machine
A machine is a device which accepts some inputs, possibly produces some output,
and has some memory sorting information on the overall results of all previous
inputs.
The condition of the machine at a particular instance is called a state of the
machine. New input changes the state, may be to another state, and may be to
the same state. The effect of a new input depends on the present state the
machine is in.
If the total number of possible states is finite, the machine is called finite
state machine, eg. a computer.
Event Execution Summary
- Check the event's guard condition. Stop here if FALSE.
- Event::before_transition
- CurrentState::on_exit
- Update state in machine
- NewState::on_enter
- Event::after_transition
State Flow
State Flow is a submodule that provides a base implementation of the State Machine class. It provides a base workflow as a base plugin.
Custom plugins should use State Flow as a model when:
- Adding new states
- Adding new events
Integration
State Flow provides the following optional integration with other modules:
- Rules: Hook a condition into a event transition
- Views: Exposes defined states, revision information, and timestamps
7.x-2.x
- Extend State Flow by hook_state_flow_machine_type_alter() instead of variable_set
- Bulk revision editing
- Workflow scheduling. Requires Date_Popup.
- Easily implement conditions to allow workflow to be ignored
7.x-3.x
Currently in unstable development as a collaborative effort with Workbench Moderation. State Flow will be come State Flow Node. An entity agnostic State Flow Entity will be created. State Flow Node will be dependent on State Flow Entity.
This module is sponsored by Treehouse Agency and Energy.gov
Downloads
Recommended releases
Development releases
Project Information
- Maintenance status: Actively maintained
- Development status: Under active development
- Reported installs: 95 sites currently report using this module. View usage statistics.
- Downloads: 361
- Last modified: May 24, 2012