configByChannel = $config; } /** * @param string $channel * @return EventRelayer Relayer instance that handles the given channel */ public function getRelayer( $channel ) { $channelKey = isset( $this->configByChannel[$channel] ) ? $channel : 'default'; if ( !isset( $this->relayers[$channelKey] ) ) { if ( !isset( $this->configByChannel[$channelKey] ) ) { throw new UnexpectedValueException( "No config for '$channelKey'" ); } $config = $this->configByChannel[$channelKey]; $class = $config['class']; $this->relayers[$channelKey] = new $class( $config ); } return $this->relayers[$channelKey]; } }