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

📄 rw.php

📁 php-4.4.7学习linux时下载的源代码
💻 PHP
📖 第 1 页 / 共 4 页
字号:
    /**     * Mark a package as conflicting with this package     * @param string package name     * @param string package channel     * @param string extension this package provides, if any     */    function addConflictingPackageDepWithUri($name, $uri, $providesextension = false)    {        $this->_isValid = 0;        $dep =            array(                'name' => $name,                'uri' => $uri,                'conflicts' => '',            );        if ($providesextension) {            $dep['providesextension'] = $providesextension;        }        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep,            array(                'dependencies' => array('providesextension', 'usesrole', 'usestask',                    'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                    'bundle', 'changelog'),                'required' => array('optional', 'group'),                'package' => array('subpackage', 'extension', 'os', 'arch')            ));    }    function addDependencyGroup($name, $hint)    {        $this->_isValid = 0;        $this->_packageInfo = $this->_mergeTag($this->_packageInfo,            array('attribs' => array('name' => $name, 'hint' => $hint)),            array(                'dependencies' => array('providesextension', 'usesrole', 'usestask',                    'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                    'bundle', 'changelog'),                'group' => array(),            ));    }    /**     * @param string package name     * @param string|false channel name, false if this is a uri     * @param string|false uri name, false if this is a channel     * @param string|false minimum version required     * @param string|false maximum version allowed     * @param string|false recommended installation version     * @param array|false versions to exclude from installation     * @param string extension this package provides, if any     * @param bool if true, tells the installer to ignore the default optional dependency group     *             when installing this package     * @return array     * @access private     */    function _constructDep($name, $channel, $uri, $min, $max, $recommended, $exclude,                           $providesextension = false, $nodefault = false)    {        $dep =            array(                'name' => $name,            );        if ($channel) {            $dep['channel'] = $channel;        } elseif ($uri) {            $dep['uri'] = $uri;        }        if ($min) {            $dep['min'] = $min;        }        if ($max) {            $dep['max'] = $max;        }        if ($recommended) {            $dep['recommended'] = $recommended;        }        if ($exclude) {            if (is_array($exclude) && count($exclude) == 1) {                $exclude = $exclude[0];            }            $dep['exclude'] = $exclude;        }        if ($nodefault) {            $dep['nodefault'] = '';        }        if ($providesextension) {            $dep['providesextension'] = $providesextension;        }        return $dep;    }    /**     * @param package|subpackage     * @param string group name     * @param string package name     * @param string package channel     * @param string minimum version     * @param string maximum version     * @param string recommended version     * @param array|false optional excluded versions     * @param string extension this package provides, if any     * @param bool if true, tells the installer to ignore the default optional dependency group     *             when installing this package     * @return bool false if the dependency group has not been initialized with     *              {@link addDependencyGroup()}, or a subpackage is added with     *              a providesextension     */    function addGroupPackageDepWithChannel($type, $groupname, $name, $channel, $min = false,                                      $max = false, $recommended = false, $exclude = false,                                      $providesextension = false, $nodefault = false)    {        if ($type == 'subpackage' && $providesextension) {            return false; // subpackages must be php packages        }        $dep = $this->_constructDep($name, $channel, false, $min, $max, $recommended, $exclude,            $providesextension, $nodefault);        return $this->_addGroupDependency($type, $dep, $groupname);    }    /**     * @param package|subpackage     * @param string group name     * @param string package name     * @param string package uri     * @param string extension this package provides, if any     * @param bool if true, tells the installer to ignore the default optional dependency group     *             when installing this package     * @return bool false if the dependency group has not been initialized with     *              {@link addDependencyGroup()}     */    function addGroupPackageDepWithURI($type, $groupname, $name, $uri, $providesextension = false,                                       $nodefault = false)    {        if ($type == 'subpackage' && $providesextension) {            return false; // subpackages must be php packages        }        $dep = $this->_constructDep($name, false, $uri, false, false, false, false,            $providesextension, $nodefault);        return $this->_addGroupDependency($type, $dep, $groupname);    }    /**     * @param string group name (must be pre-existing)     * @param string extension name     * @param string minimum version allowed     * @param string maximum version allowed     * @param string recommended version     * @param array incompatible versions     */    function addGroupExtensionDep($groupname, $name, $min = false, $max = false,                                         $recommended = false, $exclude = false)    {        $this->_isValid = 0;        $dep = $this->_constructDep($name, false, false, $min, $max, $recommended, $exclude);        return $this->_addGroupDependency('extension', $dep, $groupname);    }    /**     * @param package|subpackage|extension     * @param array dependency contents     * @param string name of the dependency group to add this to     * @return boolean     * @access private     */    function _addGroupDependency($type, $dep, $groupname)    {        $arr = array('subpackage', 'extension');        if ($type != 'package') {            array_shift($arr);        }        if ($type == 'extension') {            array_shift($arr);        }        if (!isset($this->_packageInfo['dependencies']['group'])) {            return false;        } else {            if (!isset($this->_packageInfo['dependencies']['group'][0])) {                if ($this->_packageInfo['dependencies']['group']['attribs']['name'] == $groupname) {                    $this->_packageInfo['dependencies']['group'] = $this->_mergeTag(                        $this->_packageInfo['dependencies']['group'], $dep,                        array(                            $type => $arr                        ));                    $this->_isValid = 0;                    return true;                } else {                    return false;                }            } else {                foreach ($this->_packageInfo['dependencies']['group'] as $i => $group) {                    if ($group['attribs']['name'] == $groupname) {                    $this->_packageInfo['dependencies']['group'][$i] = $this->_mergeTag(                        $this->_packageInfo['dependencies']['group'][$i], $dep,                        array(                            $type => $arr                        ));                        $this->_isValid = 0;                        return true;                    }                }                return false;            }        }    }    /**     * @param optional|required     * @param string package name     * @param string package channel     * @param string minimum version     * @param string maximum version     * @param string recommended version     * @param string extension this package provides, if any     * @param bool if true, tells the installer to ignore the default optional dependency group     *             when installing this package     * @param array|false optional excluded versions     */    function addPackageDepWithChannel($type, $name, $channel, $min = false, $max = false,                                      $recommended = false, $exclude = false,                                      $providesextension = false, $nodefault = false)    {        $this->_isValid = 0;        $arr = array('optional', 'group');        if ($type != 'required') {            array_shift($arr);        }        $dep = $this->_constructDep($name, $channel, false, $min, $max, $recommended, $exclude,            $providesextension, $nodefault);        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep,            array(                'dependencies' => array('providesextension', 'usesrole', 'usestask',                    'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                    'bundle', 'changelog'),                $type => $arr,                'package' => array('subpackage', 'extension', 'os', 'arch')            ));    }    /**     * @param optional|required     * @param string name of the package     * @param string uri of the package     * @param string extension this package provides, if any     * @param bool if true, tells the installer to ignore the default optional dependency group     *             when installing this package     */    function addPackageDepWithUri($type, $name, $uri, $providesextension = false,                                  $nodefault = false)    {        $this->_isValid = 0;        $arr = array('optional', 'group');        if ($type != 'required') {            array_shift($arr);        }        $dep = $this->_constructDep($name, false, $uri, false, false, false, false,            $providesextension, $nodefault);        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep,            array(                'dependencies' => array('providesextension', 'usesrole', 'usestask',                    'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                    'bundle', 'changelog'),                $type => $arr,                'package' => array('subpackage', 'extension', 'os', 'arch')            ));    }    /**     * @param optional|required optional, required     * @param string package name     * @param string package channel     * @param string minimum version     * @param string maximum version     * @param string recommended version     * @param array incompatible versions     * @param bool if true, tells the installer to ignore the default optional dependency group     *             when installing this package     */    function addSubpackageDepWithChannel($type, $name, $channel, $min = false, $max = false,                                         $recommended = false, $exclude = false,                                         $nodefault = false)    {        $this->_isValid = 0;        $arr = array('optional', 'group');        if ($type != 'required') {            array_shift($arr);        }        $dep = $this->_constructDep($name, $channel, false, $min, $max, $recommended, $exclude,            $nodefault);        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep,            array(                'dependencies' => array('providesextension', 'usesrole', 'usestask',                    'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                    'bundle', 'changelog'),                $type => $arr,                'subpackage' => array('extension', 'os', 'arch')            ));    }    /**     * @param optional|required optional, required     * @param string package name     * @param string package uri for download     * @param bool if true, tells the installer to ignore the default optional dependency group     *             when installing this package     */    function addSubpackageDepWithUri($type, $name, $uri, $nodefault = false)    {        $this->_isValid = 0;        $arr = array('optional', 'group');        if ($type != 'required') {            array_shift($arr);        }        $dep = $this->_constructDep($name, false, $uri, false, false, false, false, $nodefault);        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep,            array(                'dependencies' => array('providesextension', 'usesrole', 'usestask',                    'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                    'bundle', 'changelog'),                $type => $arr,                'subpackage' => array('extension', 'os', 'arch')            ));    }    /**     * @param optional|required optional, required     * @param string extension name     * @param string minimum version     * @param string maximum version     * @param string recommended version     * @param array incompatible versions     */    function addExtensionDep($type, $name, $min = false, $max = false, $recommended = false,                             $exclude = false)    {        $this->_isValid = 0;        $arr = array('optional', 'group');        if ($type != 'required') {            array_shift($arr);        }        $dep = $this->_constructDep($name, false, false, $min, $max, $recommended, $exclude);        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep,            array(                'dependencies' => array('providesextension', 'usesrole', 'usestask',                    'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                    'bundle', 'changelog'),                $type => $arr,                'extension' => array('os', 'arch')            ));    }    /**     * @param string Operating system name     * @param boolean true if this package cannot be installed on this OS     */    function addOsDep($name, $conflicts = false)    {        $this->_isValid = 0;        $dep = array('name' => $name);        if ($conflicts) {            $dep['conflicts'] = '';        }        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep,            array(                'dependencies' => array('providesextension', 'usesrole', 'usestask',                    'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                    'bundle', 'changelog'),                'required' => array('optional', 'group'),                'os' => array('arch')            ));    }    /**     * @param string Architecture matching pattern     * @param boolean true if this package cannot be installed on this architecture     */    function addArchDep($pattern, $conflicts = false)    {        $this->_isValid = 0;        $dep = array('pattern' => $pattern);        if ($conflicts) {            $dep['conflicts'] = '';        }        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep,            array(                'dependencies' => array('providesextension', 'usesrole', 'usestask',                    'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                    'bundle', 'changelog'),                'required' => array('optional', 'group'),                'arch' => array()

⌨️ 快捷键说明

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