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

📄 package.php

📁 php-4.4.7学习linux时下载的源代码
💻 PHP
📖 第 1 页 / 共 5 页
字号:
                    $this->_downloader->_getDepPackageDownloadUrl($dep, $pname);                $chan = 'pear.php.net';                if (PEAR::isError($url)) {                    // check to see if this is a pecl package that has jumped                    // from pear.php.net to pecl.php.net channel                    if (!class_exists('PEAR_Dependency2')) {                        require_once 'PEAR/Dependency2.php';                    }                    $newdep = PEAR_Dependency2::normalizeDep($dep);                    $newdep = $newdep[0];                    $newdep['channel'] = 'pecl.php.net';                    $chan = 'pecl.php.net';                    $url =                        $this->_downloader->_getDepPackageDownloadUrl($newdep, $pname);                    $obj = &$this->_installRegistry->getPackage($dep['name']);                    if (PEAR::isError($url)) {                        PEAR::popErrorHandling();                        if ($obj !== null && $this->isInstalled($obj, $dep['rel'])) {                            $group = (!isset($dep['optional']) || $dep['optional'] == 'no') ?                                'required' :                                'optional';                            $dep['package'] = $dep['name'];                            if (!isset($options['soft'])) {                                $this->_downloader->log(3, $this->getShortName() .                                    ': Skipping ' . $group . ' dependency "' .                                    $this->_registry->parsedPackageNameToString($dep, true) .                                    '", already installed as version ' . $obj->getVersion());                            }                            if (@$skipnames[count($skipnames) - 1] ==                                  $this->_registry->parsedPackageNameToString($dep, true)) {                                array_pop($skipnames);                            }                            continue;                        } else {                            if (isset($dep['optional']) && $dep['optional'] == 'yes') {                                $this->_downloader->log(2, $this->getShortName() .                                    ': Skipping ' . $group                                    . ' dependency "' .                                    $this->_registry->parsedPackageNameToString($dep, true) .                                    '", no releases exist');                                continue;                            } else {                                return $url;                            }                        }                    }                }                PEAR::popErrorHandling();                if (!isset($options['alldeps'])) {                    if (isset($dep['optional']) && $dep['optional'] == 'yes') {                        if (!isset($options['soft'])) {                            $this->_downloader->log(3, 'Notice: package "' .                                $this->getShortName() .                                '" optional dependency "' .                                $this->_registry->parsedPackageNameToString(                                    array('channel' => $chan, 'package' =>                                    $dep['name']), true) .                                '" will not be automatically downloaded');                        }                        $skipnames[] = $this->_registry->parsedPackageNameToString(                                array('channel' => $chan, 'package' =>                                $dep['name']), true);                        $nodownload = true;                    }                }                if (!isset($options['alldeps']) && !isset($options['onlyreqdeps'])) {                    if (!isset($dep['optional']) || $dep['optional'] == 'no') {                        if (!isset($options['soft'])) {                            $this->_downloader->log(3, 'Notice: package "' .                                $this->getShortName() .                                '" required dependency "' .                                $this->_registry->parsedPackageNameToString(                                    array('channel' => $chan, 'package' =>                                    $dep['name']), true) .                                '" will not be automatically downloaded');                        }                        $skipnames[] = $this->_registry->parsedPackageNameToString(                                array('channel' => $chan, 'package' =>                                $dep['name']), true);                        $nodownload = true;                    }                }                // check to see if a dep is already installed                // do not try to move this before getDepPackageDownloadURL                // we can't determine whether upgrade is necessary until we know what                // version would be downloaded                if (!isset($options['force']) && $this->isInstalled(                        $url, $dep['rel'])) {                    $group = (!isset($dep['optional']) || $dep['optional'] == 'no') ?                        'required' :                        'optional';                    $dep['package'] = $dep['name'];                    if (isset($newdep)) {                        $version = $this->_installRegistry->packageInfo($newdep['name'], 'version',                            $newdep['channel']);                    } else {                        $version = $this->_installRegistry->packageInfo($dep['name'], 'version');                    }                    $dep['version'] = $url['version'];                    if (!isset($options['soft'])) {                        $this->_downloader->log(3, $this->getShortName() . ': Skipping ' . $group .                            ' dependency "' .                            $this->_registry->parsedPackageNameToString($dep, true) .                            '", already installed as version ' . $version);                    }                    if (@$skipnames[count($skipnames) - 1] ==                          $this->_registry->parsedPackageNameToString($dep, true)) {                        array_pop($skipnames);                    }                    continue;                }                if ($nodownload) {                    continue;                }                PEAR::pushErrorHandling(PEAR_ERROR_RETURN);                if (isset($newdep)) {                    $dep = $newdep;                }                $dep['package'] = $dep['name'];                $ret = $this->_analyzeDownloadURL($url, 'dependency', $dep, $params,                    isset($dep['optional']) && $dep['optional'] == 'yes' &&                    !isset($options['alldeps']));                PEAR::popErrorHandling();                if (PEAR::isError($ret)) {                    if (!isset($options['soft'])) {                        $this->_downloader->log(0, $ret->getMessage());                    }                    continue;                }                $this->_downloadDeps[] = $ret;            }        }        if (count($skipnames)) {            if (!isset($options['soft'])) {                $this->_downloader->log(1, 'Did not download dependencies: ' .                    implode(', ', $skipnames) .                    ', use --alldeps or --onlyreqdeps to download automatically');            }        }    }    function setDownloadURL($pkg)    {        $this->_downloadURL = $pkg;    }    /**     * Set the package.xml object for this downloaded package     *     * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 $pkg     */    function setPackageFile(&$pkg)    {        $this->_packagefile = &$pkg;    }    function getShortName()    {        return $this->_registry->parsedPackageNameToString(array('channel' => $this->getChannel(),            'package' => $this->getPackage()), true);    }    function getParsedPackage()    {           if (isset($this->_packagefile) || isset($this->_parsedname)) {            return array('channel' => $this->getChannel(),                'package' => $this->getPackage(),                'version' => $this->getVersion());        }        return false;    }    function getDownloadURL()    {        return $this->_downloadURL;    }    function canDefault()    {        if (isset($this->_downloadURL)) {            if (isset($this->_downloadURL['nodefault'])) {                return false;            }        }        return true;    }    function getPackage()    {        if (isset($this->_packagefile)) {            return $this->_packagefile->getPackage();        } elseif (isset($this->_downloadURL['info'])) {            return $this->_downloadURL['info']->getPackage();        } else {            return false;        }    }    /**     * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2     */    function isSubpackage(&$pf)    {        if (isset($this->_packagefile)) {            return $this->_packagefile->isSubpackage($pf);        } elseif (isset($this->_downloadURL['info'])) {            return $this->_downloadURL['info']->isSubpackage($pf);        } else {            return false;        }    }    function getPackageType()    {        if (isset($this->_packagefile)) {            return $this->_packagefile->getPackageType();        } elseif (isset($this->_downloadURL['info'])) {            return $this->_downloadURL['info']->getPackageType();        } else {            return false;        }    }    function isBundle()    {        if (isset($this->_packagefile)) {            return $this->_packagefile->getPackageType() == 'bundle';        } else {            return false;        }    }    function getPackageXmlVersion()    {        if (isset($this->_packagefile)) {            return $this->_packagefile->getPackagexmlVersion();        } elseif (isset($this->_downloadURL['info'])) {            return $this->_downloadURL['info']->getPackagexmlVersion();        } else {            return '1.0';        }    }    function getChannel()    {        if (isset($this->_packagefile)) {            return $this->_packagefile->getChannel();        } elseif (isset($this->_downloadURL['info'])) {            return $this->_downloadURL['info']->getChannel();        } else {            return false;        }    }    function getURI()    {        if (isset($this->_packagefile)) {            return $this->_packagefile->getURI();        } elseif (isset($this->_downloadURL['info'])) {            return $this->_downloadURL['info']->getURI();        } else {            return false;        }    }    function getVersion()    {        if (isset($this->_packagefile)) {            return $this->_packagefile->getVersion();        } elseif (isset($this->_downloadURL['version'])) {            return $this->_downloadURL['version'];        } else {            return false;        }    }    function isCompatible($pf)    {        if (isset($this->_packagefile)) {            return $this->_packagefile->isCompatible($pf);        } elseif (isset($this->_downloadURL['info'])) {            return $this->_downloadURL['info']->isCompatible($pf);        } else {            return true;        }    }    function setGroup($group)    {        $this->_parsedname['group'] = $group;    }    function getGroup()    {        if (isset($this->_parsedname['group'])) {            return $this->_parsedname['group'];        } else {            return '';        }    }    function isExtension($name)    {        if (isset($this->_packagefile)) {            return $this->_packagefile->isExtension($name);        } elseif (isset($this->_downloadURL['info'])) {            return $this->_downloadURL['info']->getProvidesExtension() == $name;        } else {            return false;        }    }    function getDeps()    {        if (isset($this->_packagefile)) {            if ($this->_packagefile->getPackagexmlVersion() == '2.0') {                return $this->_packagefile->getDeps(true);            } else {                return $this->_packagefile->getDeps();            }        } elseif (isset($this->_downloadURL['info'])) {            if ($this->_downloadURL['info']->getPackagexmlVersion() == '2.0') {                return $this->_downloadURL['info']->getDeps(true);            } else {                return $this->_downloadURL['info']->getDeps();            }        } else {            return array();

⌨️ 快捷键说明

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