Thruway\Subscription\StateHandlerRegistry::addStateHandler PHP Метод

addStateHandler() публичный Метод

public addStateHandler ( $args )
$args
    public function addStateHandler($args)
    {
        $uri = isset($args[0]->uri) ? $args[0]->uri : null;
        $handlerUri = isset($args[0]->handler_uri) ? $args[0]->handler_uri : null;
        $options = isset($args[0]->options) && is_object($args[0]->options) ? $args[0]->options : new \stdClass();
        $matchType = SubscribeMessage::getMatchTypeFromOption($options);
        $matcher = $this->broker->getMatcherForMatchType($matchType);
        if ($uri === null) {
            throw new \Exception("No uri set for state handler registration.");
        }
        if ($handlerUri === null) {
            throw new \Exception("No handler uri set for state handler registration.");
        }
        if ($matcher === false) {
            throw new \Exception("State handler match type \"" . $matchType . "\" is not registered.");
        }
        $stateHandlerRegistration = new StateHandlerRegistration($this->getSession(), $handlerUri, $uri, $options, $matcher);
        $this->stateHandlerRegistrations[] = $stateHandlerRegistration;
        $this->mapNewStateHandlerRegistration($stateHandlerRegistration);
    }