dependency2.php

来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 1,299 行 · 第 1/4 页

PHP
1,299
字号
            return phpversion($name);        } else {            return phpversion();        }    }    function validateExtensionDependency($dep, $required = true)    {        if ($this->_state != PEAR_VALIDATE_INSTALLING &&              $this->_state != PEAR_VALIDATE_DOWNLOADING) {            return true;        }        $loaded = $this->extension_loaded($dep['name']);        $extra = $this->_getExtraString($dep);        if (isset($dep['exclude'])) {            if (!is_array($dep['exclude'])) {                $dep['exclude'] = array($dep['exclude']);            }        }        if (!isset($dep['min']) && !isset($dep['max']) &&              !isset($dep['recommended']) && !isset($dep['exclude'])) {            if ($loaded) {                if (isset($dep['conflicts'])) {                    if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) {                        return $this->raiseError('%s conflicts with PHP extension "' .                            $dep['name'] . '"' . $extra);                    } else {                        return $this->warning('warning: %s conflicts with PHP extension "' .                            $dep['name'] . '"' . $extra);                    }                }                return true;            } else {                if (isset($dep['conflicts'])) {                    return true;                }                if ($required) {                    if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) {                        return $this->raiseError('%s requires PHP extension "' .                            $dep['name'] . '"' . $extra);                    } else {                        return $this->warning('warning: %s requires PHP extension "' .                            $dep['name'] . '"' . $extra);                    }                } else {                    return $this->warning('%s can optionally use PHP extension "' .                        $dep['name'] . '"' . $extra);                }            }        }        if (!$loaded) {            if (isset($dep['conflicts'])) {                return true;            }            if (!$required) {                return $this->warning('%s can optionally use PHP extension "' .                    $dep['name'] . '"' . $extra);            } else {                if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) {                    return $this->raiseError('%s requires PHP extension "' . $dep['name'] .                        '"' . $extra);                }                    return $this->warning('warning: %s requires PHP extension "' . $dep['name'] .                        '"' . $extra);            }        }        $version = (string) $this->phpversion($dep['name']);        if (empty($version)) {            $version = '0';        }        $fail = false;        if (isset($dep['min'])) {            if (!version_compare($version, $dep['min'], '>=')) {                $fail = true;            }        }        if (isset($dep['max'])) {            if (!version_compare($version, $dep['max'], '<=')) {                $fail = true;            }        }        if ($fail && !isset($dep['conflicts'])) {            if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) {                return $this->raiseError('%s requires PHP extension "' . $dep['name'] .                    '"' . $extra . ', installed version is ' . $version);            } else {                return $this->warning('warning: %s requires PHP extension "' . $dep['name'] .                    '"' . $extra . ', installed version is ' . $version);            }        } elseif ((isset($dep['min']) || isset($dep['max'])) && !$fail && isset($dep['conflicts'])) {            if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) {                return $this->raiseError('%s conflicts with PHP extension "' .                    $dep['name'] . '"' . $extra . ', installed version is ' . $version);            } else {                return $this->warning('warning: %s conflicts with PHP extension "' .                    $dep['name'] . '"' . $extra . ', installed version is ' . $version);            }        }        if (isset($dep['exclude'])) {            foreach ($dep['exclude'] as $exclude) {                if (version_compare($version, $exclude, '==')) {                    if (isset($dep['conflicts'])) {                        continue;                    }                    if (!isset($this->_options['nodeps']) &&                          !isset($this->_options['force'])) {                        return $this->raiseError('%s is not compatible with PHP extension "' .                            $dep['name'] . '" version ' .                            $exclude);                    } else {                        return $this->warning('warning: %s is not compatible with PHP extension "' .                            $dep['name'] . '" version ' .                            $exclude);                    }                } elseif (version_compare($version, $exclude, '!=') && isset($dep['conflicts'])) {                    if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) {                        return $this->raiseError('%s conflicts with PHP extension "' .                            $dep['name'] . '"' . $extra . ', installed version is ' . $version);                    } else {                        return $this->warning('warning: %s conflicts with PHP extension "' .                            $dep['name'] . '"' . $extra . ', installed version is ' . $version);                    }                }            }        }        if (isset($dep['recommended'])) {            if (version_compare($version, $dep['recommended'], '==')) {                return true;            } else {                if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) {                    return $this->raiseError('%s dependency: PHP extension ' . $dep['name'] .                        ' version "' . $version . '"' .                        ' is not the recommended version "' . $dep['recommended'] .                        '", but may be compatible, use --force to install');                } else {                    return $this->warning('warning: %s dependency: PHP extension ' .                        $dep['name'] . ' version "' . $version . '"' .                        ' is not the recommended version "' . $dep['recommended'].'"');                }            }        }        return true;    }    function validatePhpDependency($dep)    {        if ($this->_state != PEAR_VALIDATE_INSTALLING &&              $this->_state != PEAR_VALIDATE_DOWNLOADING) {            return true;        }        $version = $this->phpversion();        $extra = $this->_getExtraString($dep);        if (isset($dep['exclude'])) {            if (!is_array($dep['exclude'])) {                $dep['exclude'] = array($dep['exclude']);            }        }        if (isset($dep['min'])) {            if (!version_compare($version, $dep['min'], '>=')) {                if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) {                    return $this->raiseError('%s requires PHP' .                        $extra . ', installed version is ' . $version);                } else {                    return $this->warning('warning: %s requires PHP' .                        $extra . ', installed version is ' . $version);                }            }        }        if (isset($dep['max'])) {            if (!version_compare($version, $dep['max'], '<=')) {                if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) {                    return $this->raiseError('%s requires PHP' .                        $extra . ', installed version is ' . $version);                } else {                    return $this->warning('warning: %s requires PHP' .                        $extra . ', installed version is ' . $version);                }            }        }        if (isset($dep['exclude'])) {            foreach ($dep['exclude'] as $exclude) {                if (version_compare($version, $exclude, '==')) {                    if (!isset($this->_options['nodeps']) &&                          !isset($this->_options['force'])) {                        return $this->raiseError('%s is not compatible with PHP version ' .                            $exclude);                    } else {                        return $this->warning(                            'warning: %s is not compatible with PHP version ' .                            $exclude);                    }                }            }        }        return true;    }    /**     * This makes unit-testing a heck of a lot easier     */    function getPEARVersion()    {        return '1.6.1';    }    function validatePearinstallerDependency($dep)    {        $pearversion = $this->getPEARVersion();        $extra = $this->_getExtraString($dep);        if (isset($dep['exclude'])) {            if (!is_array($dep['exclude'])) {                $dep['exclude'] = array($dep['exclude']);            }        }        if (version_compare($pearversion, $dep['min'], '<')) {            if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) {                return $this->raiseError('%s requires PEAR Installer' . $extra .                    ', installed version is ' . $pearversion);            } else {                return $this->warning('warning: %s requires PEAR Installer' . $extra .                    ', installed version is ' . $pearversion);            }        }        if (isset($dep['max'])) {            if (version_compare($pearversion, $dep['max'], '>')) {                if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) {                    return $this->raiseError('%s requires PEAR Installer' . $extra .                        ', installed version is ' . $pearversion);                } else {                    return $this->warning('warning: %s requires PEAR Installer' . $extra .                        ', installed version is ' . $pearversion);                }            }        }        if (isset($dep['exclude'])) {            if (!isset($dep['exclude'][0])) {                $dep['exclude'] = array($dep['exclude']);            }            foreach ($dep['exclude'] as $exclude) {                if (version_compare($exclude, $pearversion, '==')) {                    if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) {                        return $this->raiseError('%s is not compatible with PEAR Installer ' .                            'version ' . $exclude);                    } else {                        return $this->warning('warning: %s is not compatible with PEAR ' .                            'Installer version ' . $exclude);                    }                }            }        }        return true;    }    function validateSubpackageDependency($dep, $required, $params)    {        return $this->validatePackageDependency($dep, $required, $params);    }    /**     * @param array dependency information (2.0 format)     * @param boolean whether this is a required dependency     * @param array a list of downloaded packages to be installed, if any     * @param boolean if true, then deps on pear.php.net that fail will also check     *                against pecl.php.net packages to accomodate extensions that have     *                moved to pecl.php.net from pear.php.net     */    function validatePackageDependency($dep, $required, $params, $depv1 = false)    {        if ($this->_state != PEAR_VALIDATE_INSTALLING &&              $this->_state != PEAR_VALIDATE_DOWNLOADING) {            return true;        }        if (isset($dep['providesextension'])) {            if ($this->extension_loaded($dep['providesextension'])) {                $save = $dep;                $subdep = $dep;                $subdep['name'] = $subdep['providesextension'];                PEAR::pushErrorHandling(PEAR_ERROR_RETURN);                $ret = $this->validateExtensionDependency($subdep, $required);                PEAR::popErrorHandling();                if (!PEAR::isError($ret)) {                    return true;                }            }        }        if ($this->_state == PEAR_VALIDATE_INSTALLING) {            return $this->_validatePackageInstall($dep, $required, $depv1);        }        if ($this->_state == PEAR_VALIDATE_DOWNLOADING) {            return $this->_validatePackageDownload($dep, $required, $params, $depv1);        }    }    function _validatePackageDownload($dep, $required, $params, $depv1 = false)    {        $dep['package'] = $dep['name'];        if (isset($dep['uri'])) {            $dep['channel'] = '__uri';        }        $depname = $this->_registry->parsedPackageNameToString($dep, true);        $found = false;        foreach ($params as $param) {            if ($param->isEqual(                  array('package' => $dep['name'],                        'channel' => $dep['channel']))) {                $found = true;                break;            }            if ($depv1 && $dep['channel'] == 'pear.php.net') {                if ($param->isEqual(                  array('package' => $dep['name'],                        'channel' => 'pecl.php.net'))) {                    $found = true;                    break;                }            }        }        if (!$found && isset($dep['providesextension'])) {            foreach ($params as $param) {                if ($param->isExtension($dep['providesextension'])) {                    $found = true;                    break;                }            }        }

⌨️ 快捷键说明

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