Skip to content

Gignite/state-machine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StateMachine

Define a finite state machine like so:

<?php
namespace Gignite\StateMachine\Mocks;

use Gignite\StateMachine\State;

class HumanStateMachine extends \Gignite\StateMachine\StateMachine {
	
	public static function state_definitions()
	{
		//                               -> Undead -> 
		//                              /            \
		// ->  Unborn  ->  Born  ->  Dead     ->      -> Super Dead
        // \                          /
        //  -          <-            -
		return array(
			new State('unborn', array(
				'start' => TRUE,
				'to'    => array('born'),
			)),

			new State('born', array(
				'to' => array('dead'),
			)),

			new State('dead', array(
				'to' => array('unborn', 'undead', 'super_dead'),
			)),

			new State('undead', array(
				'to' => array('super_dead'),
			)),

			new State('super_dead', array(
				'final' => TRUE,
			)),
		);
	}

}
?>

About

A simple state machine for PHP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages