⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.php

📁 php-4.4.7学习linux时下载的源代码
💻 PHP
📖 第 1 页 / 共 5 页
字号:
        }        return PEAR_CONFIG_DEFAULT_CHANNEL;    }    // {{{ get(key, [layer])    /**     * Returns a configuration value, prioritizing layers as per the     * layers property.     *     * @param string config key     *     * @return mixed the config value, or NULL if not found     *     * @access public     */    function get($key, $layer = null, $channel = false)    {        if (!isset($this->configuration_info[$key])) {            return null;        }        if ($key == '__channels') {            return null;        }        if ($key == 'default_channel') {            return $this->getDefaultChannel($layer);        }        if (!$channel) {            $channel = $this->getDefaultChannel();        } elseif ($channel != 'pear.php.net') {            $this->_lazyChannelSetup();        }        $channel = strtolower($channel);                $test = (in_array($key, $this->_channelConfigInfo)) ?            $this->_getChannelValue($key, $layer, $channel) :            null;        if ($test !== null) {            if ($this->_installRoot) {                if (in_array($this->getGroup($key),                      array('File Locations', 'File Locations (Advanced)')) &&                      $this->getType($key) == 'directory') {                    return $this->_prependPath($test, $this->_installRoot);                }            }            return $test;        }        if ($layer === null) {            foreach ($this->layers as $layer) {                if (isset($this->configuration[$layer][$key])) {                    $test = $this->configuration[$layer][$key];                    if ($this->_installRoot) {                        if (in_array($this->getGroup($key),                              array('File Locations', 'File Locations (Advanced)')) &&                              $this->getType($key) == 'directory') {                            return $this->_prependPath($test, $this->_installRoot);                        }                    }                    if ($key == 'preferred_mirror') {                        $reg = &$this->getRegistry();                        if (is_object($reg)) {                            $chan = &$reg->getChannel($channel);                            if (PEAR::isError($chan)) {                                return $channel;                            }                            if (!$chan->getMirror($test) && $chan->getName() != $test) {                                return $channel; // mirror does not exist                            }                        }                    }                    return $test;                }            }        } elseif (isset($this->configuration[$layer][$key])) {            $test = $this->configuration[$layer][$key];            if ($this->_installRoot) {                if (in_array($this->getGroup($key),                      array('File Locations', 'File Locations (Advanced)')) &&                      $this->getType($key) == 'directory') {                    return $this->_prependPath($test, $this->_installRoot);                }            }            if ($key == 'preferred_mirror') {                $reg = &$this->getRegistry();                if (is_object($reg)) {                    $chan = &$reg->getChannel($channel);                    if (PEAR::isError($chan)) {                        return $channel;                    }                    if (!$chan->getMirror($test) && $chan->getName() != $test) {                        return $channel; // mirror does not exist                    }                }            }            return $test;        }        return null;    }    // }}}    // {{{ _getChannelValue(key, value, [layer])    /**     * Returns a channel-specific configuration value, prioritizing layers as per the     * layers property.     *     * @param string config key     *     * @return mixed the config value, or NULL if not found     *     * @access private     */    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') {            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            } else {                return $this->getDefaultChannel($layer);            }        }        return $ret;    }    // }}}    // {{{ set(key, value, [layer])    /**     * Set a config value in a specific layer (defaults to 'user').     * Enforces the types defined in the configuration_info array.  An     * integer config variable will be cast to int, and a set config     * variable will be validated against its legal values.     *     * @param string config key     * @param string config value     * @param string (optional) config layer     * @param string channel to set this value for, or null for global value     * @return bool TRUE on success, FALSE on failure     */    function set($key, $value, $layer = 'user', $channel = false)    {        if ($key == '__channels') {            return false;        }        if (!isset($this->configuration[$layer])) {            return false;        }        if ($key == 'default_channel') {            // can only set this value globally            $channel = 'pear.php.net';            if ($value != 'pear.php.net') {                $this->_lazyChannelSetup($layer);            }        }        if ($key == 'preferred_mirror') {            if ($channel == '__uri') {                return false; // can't set the __uri pseudo-channel's mirror            }            $reg = &$this->getRegistry($layer);            if (is_object($reg)) {                $chan = &$reg->getChannel($channel ? $channel : 'pear.php.net');                if (PEAR::isError($chan)) {                    return false;                }                if (!$chan->getMirror($value) && $chan->getName() != $value) {                    return false; // mirror does not exist                }            }        }        if (empty($this->configuration_info[$key])) {            return false;        }        extract($this->configuration_info[$key]);        switch ($type) {            case 'integer':                $value = (int)$value;                break;            case 'set': {                // If a valid_set is specified, require the value to                // be in the set.  If there is no valid_set, accept                // any value.                if ($valid_set) {                    reset($valid_set);                    if ((key($valid_set) === 0 && !in_array($value, $valid_set)) ||                        (key($valid_set) !== 0 && empty($valid_set[$value])))                    {                        return false;                    }                }                break;            }        }        if (!$channel) {            $channel = $this->get('default_channel', null, 'pear.php.net');        }        if (!in_array($channel, $this->_channels)) {            $this->_lazyChannelSetup($layer);            $reg = &$this->getRegistry($layer);            if ($reg) {                $channel = $reg->channelName($channel);            }            if (!in_array($channel, $this->_channels)) {                return false;            }        }        if ($channel != 'pear.php.net') {            if (in_array($key, $this->_channelConfigInfo)) {                $this->configuration[$layer]['__channels'][$channel][$key] = $value;                return true;            } else {                return false;            }        } else {            if ($key == 'default_channel') {                if (!isset($reg)) {                    $reg = &$this->getRegistry($layer);                    if (!$reg) {                        $reg = &$this->getRegistry();                    }                }                if ($reg) {                    $value = $reg->channelName($value);                }                if (!$value) {                    return false;                }            }        }        $this->configuration[$layer][$key] = $value;        if ($key == 'php_dir' && !$this->_noRegistry) {            if (!isset($this->_registry[$layer]) ||                  $value != $this->_registry[$layer]->install_dir) {                $this->_registry[$layer] = &new PEAR_Registry($value);                $this->_regInitialized[$layer] = false;                $this->_registry[$layer]->setConfig($this);            }        }        return true;    }    // }}}    function _lazyChannelSetup($uselayer = false)    {        if ($this->_noRegistry) {            return;        }        $merge = false;        foreach ($this->_registry as $layer => $p) {            if ($uselayer && $uselayer != $layer) {                continue;            }            if (!$this->_regInitialized[$layer]) {                if ($layer == 'default' && isset($this->_registry['user']) ||                      isset($this->_registry['system'])) {                    // only use the default registry if there are no alternatives                    continue;                }                if (!is_object($this->_registry[$layer])) {                    if ($phpdir = $this->get('php_dir', $layer, 'pear.php.net')) {                        $this->_registry[$layer] = &new PEAR_Registry($phpdir);                        $this->_registry[$layer]->setConfig($this);                        $this->_regInitialized[$layer] = false;                    } else {                        unset($this->_registry[$layer]);                        return;                    }                }                $this->setChannels($this->_registry[$layer]->listChannels(), $merge);                $this->_regInitialized[$layer] = true;                $merge = true;            }        }    }    // {{{ setChannels()        /**     * Set the list of channels.     *     * This should be set via a call to {@link PEAR_Registry::listChannels()}     * @param array     * @param bool     * @return bool success of operation     */    function setChannels($channels, $merge = false)    {        if (!is_array($channels)) {            return false;        }        if ($merge) {            $this->_channels = array_merge($this->_channels, $channels);        } else {            $this->_channels = $channels;        }        foreach ($channels as $channel) {            $channel = strtolower($channel);            if ($channel == 'pear.php.net') {                continue;            }            foreach ($this->layers as $layer) {                if (!isset($this->configuration[$layer]['__channels'][$channel])                      || !is_array($this->configuration[$layer]['__channels'][$channel])) {                    $this->configuration[$layer]['__channels'][$channel] = array();                }            }        }        return true;    }    // }}}    // {{{ getType(key)    /**     * Get the type of a config value.     *     * @param string  config key     *     * @return string type, one of "string", "integer", "file",     * "directory", "set" or "password".     *     * @access public     *     */    function getType($key)    {        if (isset($this->configuration_info[$key])) {            return $this->configuration_info[$key]['type'];        }        return false;    }    // }}}    // {{{ getDocs(key)    /**     * Get the documentation for a config value.     *     * @param string  config key     *     * @return string documentation string     *     * @access public     *     */    function getDocs($key)    {        if (isset($this->configuration_info[$key])) {            return $this->configuration_info[$key]['doc'];        }        return false;    }       // }}}    // {{{ getPrompt(key)    /**     * Get the short documentation for a config value.     *     * @param string  config key     *     * @return string short documentation string     *     * @access public     *     */    function getPrompt($key)    {        if (isset($this->configuration_info[$key])) {            return $this->configuration_info[$key]['prompt'];        }        return false;    }    // }}}    // {{{ getGroup(key)    /**     * Get the parameter group for a config key.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -