class TestMachine in State Machine 7.3
Same name and namespace in other branches
- 7 state_machine.api.php \TestMachine
- 7.2 state_machine.api.php \TestMachine
The State Machine module is an API only. You must extend the StateMachine class to use this module. Extend the StateMachine class to get started
Hierarchy
- class \StateMachine
- class \TestMachine
Expanded class hierarchy of TestMachine
See also
state_flow_node.inc for a complete example.
File
- ./
state_machine.api.php, line 14 - State Machine Developer Documentation
View source
class TestMachine extends StateMachine {
/**
* Called from StateMachine::__construct to initialize the states and events.
*
* Defines States Draft, Published and Unpublished.
* Define Events Publish, Unpublish and To Draft
*/
public function init() {
// Initialize states
// @see StateMachine::create_state
// Add Draft State.
$this
->create_state('draft');
// Add Published State
// We Use the the "on_enter and on_exit functionality."
$this
->create_state('published', array(
// When the state is set to "Published" run the mehtod
// "on_enter_published" on this object.
'on_enter' => array(
$this,
'on_enter_published',
),
// When leaving the state "Published" then run the mehtod
// "on_exit_published" on this object.
'on_exit' => array(
$this,
'on_exit_published',
),
));
// Add the state "unpublished"
$this
->create_state('unpublished');
// Initialize events.
// @see StateMachine::create_event
// Add the pusblish event to move the state from "draft" to "published".
$this
->create_event('publish', array(
'origin' => 'draft',
'target' => 'published',
));
// Add the unpusblish event to move the state from "published" to
// "unpublished".
$this
->create_event('unpublish', array(
'origin' => 'published',
'target' => 'unpublished',
));
// Add the "to draft" event to move the state from unpublished to draft.
$this
->create_event('to draft', array(
'origin' => 'unpublished',
'target' => 'draft',
));
}
/**
* Actions when entering the state.
*/
public function on_enter_published() {
// Do some stuff.
}
/**
* Actions when leaving the state.
*/
public function on_exit_published() {
// Do some stuff.
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
StateMachine:: |
protected | property | 1 | |
StateMachine:: |
protected | property | ||
StateMachine:: |
protected | property | 1 | |
StateMachine:: |
protected | property | 1 | |
StateMachine:: |
protected | property | ||
StateMachine:: |
protected | function | Create a new event. | |
StateMachine:: |
protected | function | Create a new state. | |
StateMachine:: |
public | function | Trigger an event to process a transition. | 1 |
StateMachine:: |
public | function | Get all of the events. | |
StateMachine:: |
public | function | Returns an array of events that are valid for the current state. | |
StateMachine:: |
public | function | Returns the current state. | |
StateMachine:: |
public | function | Return an event instance by key, lazy-loading the instance if necessary. | 1 |
StateMachine:: |
public | function | Return a state instance by key, lazy-loading the instance if necessary. | |
StateMachine:: |
public | function | Whether State Machine to be ignored. | |
StateMachine:: |
protected | function | Load the current state from the given state storage. | 1 |
StateMachine:: |
protected | function | Method to be called when firing an event fails for any reason. | |
StateMachine:: |
protected | function | Persist the current state to the object storage. | |
StateMachine:: |
protected | function | Set the current state to the state identified by the specified key. | |
StateMachine:: |
protected | function | Set the initial state for this machine. | |
StateMachine:: |
public | function | Create instance of StateMachine. | 1 |
TestMachine:: |
public | function |
Called from StateMachine::__construct to initialize the states and events. Overrides StateMachine:: |
|
TestMachine:: |
public | function | Actions when entering the state. | |
TestMachine:: |
public | function | Actions when leaving the state. |