sidfate/fsm

A simple finite state machine

1.0.0 2017-06-26 08:28 UTC

This package is auto-updated.

Last update: 2025-06-26 18:01:45 UTC


README

A simple finite state machine

Install

composer require sidfate/fsm

Usage

$fsm = new Fsm([
    'init'=> 'green',
    'events'=> [
        ['name'=> 'warn', 'from'=> 'green', 'to'=> 'yellow'],
        ['name'=> 'stop', 'from'=> 'yellow', 'to'=> 'red'],
        ['name'=> 'go', 'from'=> 'red', 'to'=> 'green'],
    ]
]);

$fsm->onWarn(function () {
   echo 'I am warn';
});

echo $fsm->now();	// green
$fsm->warn();		// I am warn
echo $fsm->now();	// yellow

Document

Click me

License

MIT