1. Go to this page and download the library: Download yohang/finite 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/ */
yohang / finite example snippets
use Finite\StatefulInterface;
class Document implements StatefulInterface
{
private $state;
public function setFiniteState($state)
{
$this->state = $state;
}
public function getFiniteState()
{
return $this->state;
}
}
use Finite\StateMachine\StateMachine;
use Finite\State\State;
use Finite\State\StateInterface;
// $document = retrieve your stateful object
$sm = new StateMachine();
// Define states
$sm->addState(new State('s1', StateInterface::TYPE_INITIAL));
$sm->addState('s2');
$sm->addState('s3');
$sm->addState(new State('s4', StateInterface::TYPE_FINAL));
// Define transitions
$sm->addTransition('t12', 's1', 's2');
$sm->addTransition('t23', 's2', 's3');
$sm->addTransition('t34', 's3', 's4');
$sm->addTransition('t42', 's4', 's2');
// Initialize
$sm->setObject($document);
$sm->initialize();
// Retrieve current state
$sm->getCurrentState();
// Can we process a transition ?
$sm->can('t34');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.