1. Go to this page and download the library: Download daveawb/understated library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use UnderStated\States\State;
$builder = new UnderStated\Builders\GraphBuilder();
$fsm = $builder->create()
// Create an 'on' state
->state('on', function() { /* state is on */ })
// Create an 'off' state
->state('off', function() { /* state is off */ }, State::INITIAL)
// Create a transition (undirected) between the two states
->transition('on', 'off', true)
// Get the FSM instance
->get();
// Initialise using the state marked with State::INITIAL or the first state added.
$fsm->initialise();
// If you want to override the initial state, pass it in to the `initialise` method
$fsm->initialise('on');
/**
* Automatically called when this state is transitioned to. Returning false from
* this method will block the transition attempt and the previous state will
* remain as the active state.
*
* @param State $previousState
* @return boolean
*/
public function onEnter(State $previousState)
/**
* Automatically called when this state is transitioned from. Returning false from
* this method will block the transition attempt and the current state will
* remain as the active state.
*
* @param State $nextState
* @return boolean
*/
public function onExit(State $nextState)
public function onReset()
{
// <-- Clean up logic here
parent::onReset();
}
use UnderStated\State;
class StateOne extends State
{
/**
* @param State
* @return bool
*/
public function onEnter(State $previous)
{
$this->handle('myHandle');
return true;
}
/**
* A state handler
*/
public function myHandle()
{
// I'm handled when the state changes
}
/**
* @param State
* @return boolean
*/
public function onExit(State $next)
{
// Will return true if unimplemented
return true;
}
}
$builder->create()
->state('on', StateOne::class)
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.