<?php require_once __DIR__ . '/../vendor/autoload.php'; require __DIR__ . '/include/Context.php'; require __DIR__ . '/include/SimpleGuard.php'; require __DIR__ . '/include/SimpleListener.php'; $cr = "\n"; $typeRegular = FSM\State\StateInterface::TYPE_REGULAR; $config = (require __DIR__ . '/include/config.php'); $context = new Context(); $context->setContextState('created'); $di = new \Pimple\Container(); $di['SimpleGuard'] = function ($container) { return new SimpleGuard(); }; $di['SimpleListener'] = function ($container) { return new SimpleListener(); }; $container = new \FSM\Container\PimpleContainer($di); $machineLocator = new FSM\FSMLocator($config, $container); $machine = $machineLocator->getMachine($context); echo $context->getContextState(), $cr; foreach (['edit', 'activate', 'delete'] as $signal) { echo $signal, '-------------', $cr; try { $machine->signal($context, $signal); echo $context->getContextState(), $cr; } catch (\Exception $e) { echo $e->getMessage(), $cr; echo $context->getContextState(), $cr; }