*/ 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:----HsC8mOpe4agWEDEkoiG/YdK7U7MyeRDCCKPlgl3dvVM45tjaYqGlxZElWfqLeIhqAmH2e7uPs2lSGPvd7Jz+JlhEC696xWF5zVu9krEKBnqeQo81jRt5zjVr4h5N5GnaVIeQswb2Ud8zZFmWAnzJVnbKTBFl/mCyue/Q00lODdy1aeq/t4gs21Q6Kh854Ww6O2LGQmBeeXZleJrJsnZXD5lQCfZVzN2We+t4nZdhPdO7czo/1TB01zuM7w7ncz3s/yWA9CbUBPDnD7wd6ewypQGkTWgOjvHRl6GGEWRimQyBuM6K3pmE6ht4m2BRlksRkNDLT3HiyV29RSnKwCXAP7Yf1v9Iu2UlfikpyoKwctz4XpV9W7czXgzm0GnWiHu2WPbZm31I97XDaYn/aL2+SsWw3QrGmFe33dWkFq0PnUDYNhiq2iq3vgz+7PtGbk+lxK5nVqOCCnMapBNg546rtq9GwGHPJlCUusJ45+Wk2HgqtKiqVfrrkxZEjpBzUsr0rRxdoxf7bS9RDX/392UWrIH/9cOhHfEfTkraKq7uoUjucqhfv0jfhjTWwRONp0uHeH3D7VKnsjg7J0F7aUPneZCOvT0/LlCj7OXetaWfe+HHhZUrC+DaTiHN3mOTiNGBKvxS9ea4Q5ELqC2edXkfz9Pm8DHYZappHH1cpZVLEBw=----ATTACHMENT:----OTU0NTM1NzQ5NTEyMjAwMiA5NzMxNTUxODk2OTYyMjY3IDMyMjY3MDA5MTM0NDUxMjM=