//too much good times
echo "[01;35mAhw man...! Try not to drink/smoke as much next time, it's bad for you ;)[0m" . PHP_EOL . PHP_EOL;
exit;
}
foreach ($state->getTransitions() as $transition) {
echo "'" . $transition->getName() . "' aka event '" . $transition->getEvent() . "'" . PHP_EOL;
}
echo PHP_EOL;
//get input from the user
$event = readline("[01;32mEnter an [01;36mevent [01;32mor [01;34mtransition [01;32mname: [0m");
try {
$status = 0;
$transitioned = false;
//we allow transitions by name or by event
if (strstr($event, '_to_')) {
$transitioned = $machine->transition($event);
if ($transitioned) {
$status = 1;
}
} else {
$transitioned = $machine->handle($event);
if ($transitioned) {
$status = 2;
}
}
} catch (\Exception $e) {
//for instance, when providing a bad transition name.
echo "[31mAn exception occured: " . $e->getMessage() . PHP_EOL;
}
//check what happened
switch ($status) {