4. Transitions properties¶
As the second argument, StateMachine#apply and StateMachine#test will accept an array of properties to be passed to the dispatched event, and accessible by the listeners.
Default properties can be defined with your state graph.
$stateManager->apply('some_event', array('something' => $value));
In your listeners you just have to call `$event->getProperties()`
to access the passed data.
<?php
namespace My\AwesomeBundle\EventListener;
use Finite\Event\TransitionEvent;
class TransitionListener
{
/**
* @param TransitionEvent $event
*/
public function someEvent(TransitionEvent $event)
{
$entity = $event->getStateMachine()->getObject();
$params = $event->getProperties();
$entity->setSomething($params['something']);
}
}
4.1. Default properties¶
'transitions' => array(
'finish' => array(
'from' => array('middle'),
'to' => 'end',
'properties' => array('foo' => 'bar'),
'configure_properties' => function (OptionsResolver $resolver) {
$resolver->setRequired('baz');
}
)
)