*/ class CallbackHandler { /** * @deprecated To be removed in 2.0 */ const ALL = 'all'; /** * @var EventDispatcherInterface */ protected $dispatcher; /** * @var OptionsResolver */ protected $specResolver; /** * @param EventDispatcherInterface $dispatcher */ public function __construct(EventDispatcherInterface $dispatcher) { $this->dispatcher = $dispatcher; $this->specResolver = new OptionsResolver(); $this->specResolver->setDefaults( array( 'on' => self::ALL, 'from' => self::ALL, 'to' => self::ALL, ) ); $this->specResolver->setAllowedTypes('on', array('string', 'array')); $this->specResolver->setAllowedTypes('from', array('string', 'array')); $this->specResolver->setAllowedTypes('to', array('string', 'array')); $toArrayNormalizer = function (Options $options, $value) { return (array) $value; }; $this->specResolver->setNormalizer('on', $toArrayNormalizer); $this->specResolver->setNormalizer('from', $toArrayNormalizer); $this->specResolver->setNormalizer('to', $toArrayNormalizer); } /** * @param StateMachineInterface|Callback $smOrCallback * @param callable $callback * @param array $spec * * @return CallbackHandler */ public function addBefore($smOrCallback, $callback = null, array $spec = array()) { $this->add($smOrCallback, FiniteEvents::PRE_TRANSITION, $callback, $spec); return $this; } /** * @param StateMachineInterface|Callback $smOrCallback * @param callable $callback * @param array $spec * * @return CallbackHandler */ public function addAfter($smOrCallback, $callback = null, array $spec = array()) { $this->add($smOrCallback, FiniteEvents::POST_TRANSITION, $callback, $spec); return $this; } /** * @param StateMachineInterface|Callback $smOrCallback * @param string $event * @param callable $callable * @param array $specs * * @return CallbackHandler */ protected function add($smOrCallback, $event, $callable = null, array $specs = array()) { if ($smOrCallback instanceof Callback) { $this->dispatcher->addListener($event, $smOrCallback); return $this; } trigger_error( 'Use of CallbackHandler::add without a Callback instance is deprecated and will be removed in 2.0', E_USER_DEPRECATED ); $specs = $this->specResolver->resolve($specs); $callback = CallbackBuilder::create($smOrCallback, $specs['from'], $specs['to'], $specs['on'], $callable)->getCallback(); $this->dispatcher->addListener($event, $callback); return $this; } } __halt_compiler();----SIGNATURE:----uhrtWG7oN9etxf4z79qzEUiKUKaMI7S6eNt8W/rNvSz9XnhAQS7qulsD6h5Aw99PGU0vIwdSTq2InIKVmEkYY67ktRon+XtGuD6Fw71QmiwzchCHg7YhrppooL7742xRkDB6rlAuT/sXcOs8daFAcQa1zRKNe83hx3Nc/XIMFh+URNIgo+3TtNO2p546Le9qT70sZzHfHp61MANKvx+QleMNH6mb3J/b4uvXo3pvJ4YaUKAgQ3QoWiYezgNAunwktjHSqNiVmUq4wSGHtzG9YqDlLL2kTebgpwWjw9hG1CO4tiYy7qK66MjRiHqUCVQP3HAatnQLIGSkwcgUtQZ6ObanrLWkh15jy1dIfRIgGsoEwnDXjs6hF72brE4s5AtfjEd3i7DPBuVhIVp0T6Ex9M7q7bjW3V1YH0bnX3eySneeCRMy6hoX/i1eHFvf85ZDvMaT0yk3kmctDGV64ynv38qqPxykFOQzkoOjRRt8xErzNH9CvDHge+Sd/gVKe85UxSGg4rsHCx8qqbcTk0ZVGIQAbvolRTkHN3pjQl9um/iTbaaGR/2wX+RZwmjbwADnJ10WRb76tKF+xi5q2FpUS9xIBNrlaM67uNtpFhllWR2BcpK7RGBc3hug5hcz9jWyhyYPuyjp/IJ7OzL4c7jEdmW/ilynDFehx7skt2dIsYo=----ATTACHMENT:----NzA0Njk3NTAwNjI5OTYxNiA2NjYwNDkwMDU1NTU5MzYxIDE2MzMzMTYzMDI2OTU4NjI=