PEAR_Config::_getChannelValue PHP Method

_getChannelValue() public method

Returns a channel-specific configuration value, prioritizing layers as per the layers property.
public _getChannelValue ( $key, $layer, $channel ) : mixed
return mixed the config value, or NULL if not found
    function _getChannelValue($key, $layer, $channel)
    {
        if ($key == '__channels' || $channel == 'pear.php.net') {
            return null;
        }
        $ret = null;
        if ($layer === null) {
            foreach ($this->layers as $ilayer) {
                if (isset($this->configuration[$ilayer]['__channels'][$channel][$key])) {
                    $ret = $this->configuration[$ilayer]['__channels'][$channel][$key];
                    break;
                }
            }
        } elseif (isset($this->configuration[$layer]['__channels'][$channel][$key])) {
            $ret = $this->configuration[$layer]['__channels'][$channel][$key];
        }
        if ($key != 'preferred_mirror') {
            return $ret;
        }
        if ($ret !== null) {
            $reg =& $this->getRegistry($layer);
            if (is_object($reg)) {
                $chan =& $reg->getChannel($channel);
                if (PEAR::isError($chan)) {
                    return $channel;
                }
                if (!$chan->getMirror($ret) && $chan->getName() != $ret) {
                    return $channel;
                    // mirror does not exist
                }
            }
            return $ret;
        }
        if ($channel != $this->getDefaultChannel($layer)) {
            return $channel;
            // we must use the channel name as the preferred mirror
            // if the user has not chosen an alternate
        }
        return $this->getDefaultChannel($layer);
    }