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

📄 registry.php

📁 php-4.4.7学习linux时下载的源代码
💻 PHP
📖 第 1 页 / 共 3 页
字号:
            $v = $reg->packageInfo($package, 'version', $channel);            if (!$v || !version_compare("$v", "{$params[1]}", "ge")) {                exit(1);            }            // "pear shell-test Foo ge 1.0"        } elseif (sizeof($params) == 3) {            $v = $reg->packageInfo($package, 'version', $channel);            if (!$v || !version_compare("$v", "{$params[2]}", $params[1])) {                exit(1);            }        } else {            $this->popErrorHandling();            $this->raiseError("$command: expects 1 to 3 parameters");            exit(1);        }    }    // }}}    // {{{ doInfo    function doInfo($command, $options, $params)    {        if (count($params) != 1) {            return $this->raiseError('pear info expects 1 parameter');        }        $info = false;        $reg = &$this->config->getRegistry();        if ((@is_file($params[0]) && !is_dir($params[0])) || $fp = @fopen($params[0], 'r')) {            @fclose($fp);            if (!class_exists('PEAR_PackageFile')) {                require_once 'PEAR/PackageFile.php';            }            $pkg = &new PEAR_PackageFile($this->config, $this->_debug);            PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN);            $obj = &$pkg->fromAnyFile($params[0], PEAR_VALIDATE_NORMAL);            PEAR::staticPopErrorHandling();            if (PEAR::isError($obj)) {                $uinfo = $obj->getUserInfo();                if (is_array($uinfo)) {                    foreach ($uinfo as $message) {                        if (is_array($message)) {                            $message = $message['message'];                        }                        $this->ui->outputData($message);                    }                }                return $this->raiseError($obj);            }            if ($obj->getPackagexmlVersion() == '1.0') {                $info = $obj->toArray();            } else {                return $this->_doInfo2($command, $options, $params, $obj, false);            }        } else {            $parsed = $reg->parsePackageName($params[0], $this->config->get('default_channel'));            if (PEAR::isError($parsed)) {                return $this->raiseError($parsed);            }            $package = $parsed['package'];            $channel = $parsed['channel'];            $info = $reg->packageInfo($package, null, $channel);            if (isset($info['old'])) {                $obj = $reg->getPackage($package, $channel);                return $this->_doInfo2($command, $options, $params, $obj, true);            }        }        if (PEAR::isError($info)) {            return $info;        }        if (empty($info)) {            $this->raiseError("No information found for `$params[0]'");            return;        }        unset($info['filelist']);        unset($info['dirtree']);        unset($info['changelog']);        if (isset($info['xsdversion'])) {            $info['package.xml version'] = $info['xsdversion'];            unset($info['xsdversion']);        }        if (isset($info['packagerversion'])) {            $info['packaged with PEAR version'] = $info['packagerversion'];            unset($info['packagerversion']);        }        $keys = array_keys($info);        $longtext = array('description', 'summary');        foreach ($keys as $key) {            if (is_array($info[$key])) {                switch ($key) {                    case 'maintainers': {                        $i = 0;                        $mstr = '';                        foreach ($info[$key] as $m) {                            if ($i++ > 0) {                                $mstr .= "\n";                            }                            $mstr .= $m['name'] . " <";                            if (isset($m['email'])) {                                $mstr .= $m['email'];                            } else {                                $mstr .= $m['handle'] . '@php.net';                            }                            $mstr .= "> ($m[role])";                        }                        $info[$key] = $mstr;                        break;                    }                    case 'release_deps': {                        $i = 0;                        $dstr = '';                        foreach ($info[$key] as $d) {                            if (isset($this->_deps_rel_trans[$d['rel']])) {                                $rel = $this->_deps_rel_trans[$d['rel']];                            } else {                                $rel = $d['rel'];                            }                            if (isset($this->_deps_type_trans[$d['type']])) {                                $type = ucfirst($this->_deps_type_trans[$d['type']]);                            } else {                                $type = $d['type'];                            }                            if (isset($d['name'])) {                                $name = $d['name'] . ' ';                            } else {                                $name = '';                            }                            if (isset($d['version'])) {                                $version = $d['version'] . ' ';                            } else {                                $version = '';                            }                            if (isset($d['optional']) && $d['optional'] == 'yes') {                                $optional = ' (optional)';                            } else {                                $optional = '';                            }                            $dstr .= "$type $name$rel $version$optional\n";                        }                        $info[$key] = $dstr;                        break;                    }                    case 'provides' : {                        $debug = $this->config->get('verbose');                        if ($debug < 2) {                            $pstr = 'Classes: ';                        } else {                            $pstr = '';                        }                        $i = 0;                        foreach ($info[$key] as $p) {                            if ($debug < 2 && $p['type'] != "class") {                                continue;                            }                            // Only print classes when verbosity mode is < 2                            if ($debug < 2) {                                if ($i++ > 0) {                                    $pstr .= ", ";                                }                                $pstr .= $p['name'];                            } else {                                if ($i++ > 0) {                                    $pstr .= "\n";                                }                                $pstr .= ucfirst($p['type']) . " " . $p['name'];                                if (isset($p['explicit']) && $p['explicit'] == 1) {                                    $pstr .= " (explicit)";                                }                            }                        }                        $info[$key] = $pstr;                        break;                    }                    case 'configure_options' : {                        foreach ($info[$key] as $i => $p) {                            $info[$key][$i] = array_map(null, array_keys($p), array_values($p));                            $info[$key][$i] = array_map(create_function('$a',                                'return join(" = ",$a);'), $info[$key][$i]);                            $info[$key][$i] = implode(', ', $info[$key][$i]);                        }                        $info[$key] = implode("\n", $info[$key]);                        break;                    }                    default: {                        $info[$key] = implode(", ", $info[$key]);                        break;                    }                }            }            if ($key == '_lastmodified') {                $hdate = date('Y-m-d', $info[$key]);                unset($info[$key]);                $info['Last Modified'] = $hdate;            } elseif ($key == '_lastversion') {                $info['Last Installed Version'] = $info[$key] ? $info[$key] : '- None -';                unset($info[$key]);            } else {                $info[$key] = trim($info[$key]);                if (in_array($key, $longtext)) {                    $info[$key] = preg_replace('/  +/', ' ', $info[$key]);                }            }        }        $caption = 'About ' . $info['package'] . '-' . $info['version'];        $data = array(            'caption' => $caption,            'border' => true);        foreach ($info as $key => $value) {            $key = ucwords(trim(str_replace('_', ' ', $key)));            $data['data'][] = array($key, $value);        }        $data['raw'] = $info;        $this->ui->outputData($data, 'package-info');    }    // }}}    /**     * @access private     */    function _doInfo2($command, $options, $params, &$obj, $installed)    {        $reg = &$this->config->getRegistry();        $caption = 'About ' . $obj->getChannel() . '/' .$obj->getPackage() . '-' .            $obj->getVersion();        $data = array(            'caption' => $caption,            'border' => true);        switch ($obj->getPackageType()) {            case 'php' :                $release = 'PEAR-style PHP-based Package';            break;            case 'extsrc' :                $release = 'PECL-style PHP extension (source code)';            break;            case 'extbin' :                $release = 'PECL-style PHP extension (binary)';            break;            case 'bundle' :                $release = 'Package bundle (collection of packages)';            break;        }        $extends = $obj->getExtends();        $extends = $extends ?            $obj->getPackage() . ' (extends ' . $extends . ')' : $obj->getPackage();        if ($src = $obj->getSourcePackage()) {            $extends .= ' (source package ' . $src['channel'] . '/' . $src['package'] . ')';        }        $info = array(            'Release Type' => $release,            'Name' => $extends,            'Channel' => $obj->getChannel(),            'Summary' => preg_replace('/  +/', ' ', $obj->getSummary()),            'Description' => preg_replace('/  +/', ' ', $obj->getDescription()),            );        $info['Maintainers'] = '';        foreach (array('lead', 'developer', 'contributor', 'helper') as $role) {            $leads = $obj->{"get{$role}s"}();            if (!$leads) {                continue;            }            if (isset($leads['active'])) {                $leads = array($leads);            }            foreach ($leads as $lead) {                if (!empty($info['Maintainers'])) {                    $info['Maintainers'] .= "\n";                }                $info['Maintainers'] .= $lead['name'] . ' <';                $info['Maintainers'] .= $lead['email'] . "> ($role)";            }        }        $info['Release Date'] = $obj->getDate();        if ($time = $obj->getTime()) {            $info['Release Date'] .= ' ' . $time;        }        $info['Release Version'] = $obj->getVersion() . ' (' . $obj->getState() . ')';        $info['API Version'] = $obj->getVersion('api') . ' (' . $obj->getState('api') . ')';        $info['License'] = $obj->getLicense();        $uri = $obj->getLicenseLocation();        if ($uri) {            if (isset($uri['uri'])) {                $info['License'] .= ' (' . $uri['uri'] . ')';            } else {                $extra = $obj->getInstalledLocation($info['filesource']);                if ($extra) {                    $info['License'] .= ' (' . $uri['filesource'] . ')';                }            }        }        $info['Release Notes'] = $obj->getNotes();        if ($compat = $obj->getCompatible()) {            $info['Compatible with'] = '';            foreach ($compat as $package) {                $info['Compatible with'] .= $package['channel'] . '/' . $package['package'] .                    "\nVersions >= " . $package['min'] . ', <= ' . $package['max'];                if (isset($package['exclude'])) {                    if (is_array($package['exclude'])) {                        $package['exclude'] = implode(', ', $package['exclude']);                    }                    if (!isset($info['Not Compatible with'])) {                        $info['Not Compatible with'] = '';                    } else {                        $info['Not Compatible with'] .= "\n";                    }                    $info['Not Compatible with'] .= $package['channel'] . '/' .                        $package['package'] . "\nVersions " . $package['exclude'];                }            }        }        $usesrole = $obj->getUsesrole();        if ($usesrole) {            if (!isset($usesrole[0])) {                $usesrole = array($usesrole);            }            foreach ($usesrole as $roledata) {                if (isset($info['Uses Custom Roles'])) {                    $info['Uses Custom Roles'] .= "\n";                } else {                    $info['Uses Custom Roles'] = '';                }                if (isset($roledata['package'])) {                    $rolepackage = $reg->parsedPackageNameToString($roledata, true);                } else {                    $rolepackage = $roledata['uri'];                }                $info['Uses Custom Roles'] .= $roledata['role'] . ' (' . $rolepackage . ')';            }        }        $usestask = $obj->getUsestask();        if ($usestask) {            if (!isset($usestask[0])) {                $usestask = array($usestask);

⌨️ 快捷键说明

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