rw.php

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

PHP
1,603
字号
        }        $this->_isValid = 0;        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $set, array(                'usesrole' => array('usestask', 'srcpackage', 'srcuri',                    'phprelease', 'extsrcrelease', 'extbinrelease',                    'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog')            ));    }    /**     * Removes the <usestask> tag entirely     */    function resetUsestask()    {        if (isset($this->_packageInfo['usestask'])) {            unset($this->_packageInfo['usestask']);        }    }    /**     * @param string     * @param string package name or uri     * @param string channel name if non-uri     */    function addUsestask($task, $packageOrUri, $channel = false) {        $set = array('task' => $task);        if ($channel) {            $set['package'] = $packageOrUri;            $set['channel'] = $channel;        } else {            $set['uri'] = $packageOrUri;        }        $this->_isValid = 0;        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $set, array(                'usestask' => array('srcpackage', 'srcuri',                    'phprelease', 'extsrcrelease', 'extbinrelease',                    'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog')            ));    }    /**     * Remove all compatible tags     */    function clearCompatible()    {        unset($this->_packageInfo['compatible']);    }    /**     * Reset dependencies prior to adding new ones     */    function clearDeps()    {        if (!isset($this->_packageInfo['dependencies'])) {            $this->_packageInfo = $this->_mergeTag($this->_packageInfo, array(),                array(                    'dependencies' => array('providesextension', 'usesrole', 'usestask',                        'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                        'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog')));        }        $this->_packageInfo['dependencies'] = array();    }    /**     * @param string minimum PHP version allowed     * @param string maximum PHP version allowed     * @param array $exclude incompatible PHP versions     */    function setPhpDep($min, $max = false, $exclude = false)    {        $this->_isValid = 0;        $dep =            array(                'min' => $min,            );        if ($max) {            $dep['max'] = $max;        }        if ($exclude) {            if (count($exclude) == 1) {                $exclude = $exclude[0];            }            $dep['exclude'] = $exclude;        }        if (isset($this->_packageInfo['dependencies']['required']['php'])) {            $this->_stack->push(__FUNCTION__, 'warning', array('dep' =>            $this->_packageInfo['dependencies']['required']['php']),                'warning: PHP dependency already exists, overwriting');            unset($this->_packageInfo['dependencies']['required']['php']);        }        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep,            array(                'dependencies' => array('providesextension', 'usesrole', 'usestask',                    'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                    'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),                'required' => array('optional', 'group'),                'php' => array('pearinstaller', 'package', 'subpackage', 'extension', 'os', 'arch')            ));        return true;    }    /**     * @param string minimum allowed PEAR installer version     * @param string maximum allowed PEAR installer version     * @param string recommended PEAR installer version     * @param array incompatible version of the PEAR installer     */    function setPearinstallerDep($min, $max = false, $recommended = false, $exclude = false)    {        $this->_isValid = 0;        $dep =            array(                'min' => $min,            );        if ($max) {            $dep['max'] = $max;        }        if ($recommended) {            $dep['recommended'] = $recommended;        }        if ($exclude) {            if (count($exclude) == 1) {                $exclude = $exclude[0];            }            $dep['exclude'] = $exclude;        }        if (isset($this->_packageInfo['dependencies']['required']['pearinstaller'])) {            $this->_stack->push(__FUNCTION__, 'warning', array('dep' =>            $this->_packageInfo['dependencies']['required']['pearinstaller']),                'warning: PEAR Installer dependency already exists, overwriting');            unset($this->_packageInfo['dependencies']['required']['pearinstaller']);        }        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep,            array(                'dependencies' => array('providesextension', 'usesrole', 'usestask',                    'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                    'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),                'required' => array('optional', 'group'),                'pearinstaller' => array('package', 'subpackage', 'extension', 'os', 'arch')            ));    }    /**     * Mark a package as conflicting with this package     * @param string package name     * @param string package channel     * @param string extension this package provides, if any     * @param string|false minimum version required     * @param string|false maximum version allowed     * @param array|false versions to exclude from installation     */    function addConflictingPackageDepWithChannel($name, $channel,                $providesextension = false, $min = false, $max = false, $exclude = false)    {        $this->_isValid = 0;        $dep = $this->_constructDep($name, $channel, false, $min, $max, false,            $exclude, $providesextension, false, true);        $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep,            array(                'dependencies' => array('providesextension', 'usesrole', 'usestask',                    'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease',                    'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'),                'required' => array('optional', 'group'),                'package' => array('subpackage', 'extension', 'os', 'arch')            ));    }    /**     * 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',                    'zendextsrcrelease', 'zendextbinrelease', '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',                    'zendextsrcrelease', 'zendextbinrelease', '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     * @param bool if true, tells the installer to negate this dependency (conflicts)     * @return array     * @access private     */    function _constructDep($name, $channel, $uri, $min, $max, $recommended, $exclude,                           $providesextension = false, $nodefault = false,                           $conflicts = 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 ($conflicts) {            $dep['conflicts'] = '';        }        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

⌨️ 快捷键说明

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