public function getChannel($channel = null)
{
$channel = $channel ?: $this->defaultChannel;
if (isset($this->deferredChannels[$channel])) {
$this->setChannel($channel, $this->deferredChannels[$channel]());
unset($this->deferredChannels[$channel]);
}
if (isset($this->channels[$channel])) {
return $this->channels[$channel];
}
throw new InvalidArgumentException("Undefined channel: {$channel}");
}