function &download()
    {
        if (isset($this->_packagefile)) {
            return $this->_packagefile;
        }

        if (isset($this->_downloadURL['url'])) {
            $this->_isvalid = false;
            $info = $this->getParsedPackage();
            foreach ($info as $i => $p) {
                $info[$i] = strtolower($p);
            }

            $err = $this->_fromUrl($this->_downloadURL['url'],
                $this->_registry->parsedPackageNameToString($this->_parsedname, true));
            $newinfo = $this->getParsedPackage();
            foreach ($newinfo as $i => $p) {
                $newinfo[$i] = strtolower($p);
            }

            if ($info != $newinfo) {
                do {
                    if ($info['channel'] == 'pecl.php.net' && $newinfo['channel'] == 'pear.php.net') {
                        $info['channel'] = 'pear.php.net';
                        if ($info == $newinfo) {
                            // skip the channel check if a pecl package says it's a PEAR package
                            break;
                        }
                    }
                    if ($info['channel'] == 'pear.php.net' && $newinfo['channel'] == 'pecl.php.net') {
                        $info['channel'] = 'pecl.php.net';
                        if ($info == $newinfo) {
                            // skip the channel check if a pecl package says it's a PEAR package
                            break;
                        }
                    }

                    return PEAR::raiseError('CRITICAL ERROR: We are ' .
                        $this->_registry->parsedPackageNameToString($info) . ', but the file ' .
                        'downloaded claims to be ' .
                        $this->_registry->parsedPackageNameToString($this->getParsedPackage()));
                } while (false);
            }

            if (PEAR::isError($err) || !$this->_valid) {
                return $err;
            }
        }

        $this->_type = 'local';
        return $this->_packagefile;
    }
function &download()
    {
        if (isset($this->_packagefile)) {
            return $this->_packagefile;
        }

        if (isset($this->_downloadURL['url'])) {
            $this->_isvalid = false;
            $info = $this->getParsedPackage();
            foreach ($info as $i => $p) {
                $info[$i] = strtolower($p);
            }

            $err = $this->_fromUrl($this->_downloadURL['url'],
                $this->_registry->parsedPackageNameToString($this->_parsedname, true));
            $newinfo = $this->getParsedPackage();
            foreach ($newinfo as $i => $p) {
                $newinfo[$i] = strtolower($p);
            }

            if ($info != $newinfo) {
                do {
                    if ($info['channel'] == 'pecl.php.net' && $newinfo['channel'] == 'pear.php.net') {
                        $info['channel'] = 'pear.php.net';
                        if ($info == $newinfo) {
                            // skip the channel check if a pecl package says it's a PEAR package
                            break;
                        }
                    }
                    if ($info['channel'] == 'pear.php.net' && $newinfo['channel'] == 'pecl.php.net') {
                        $info['channel'] = 'pecl.php.net';
                        if ($info == $newinfo) {
                            // skip the channel check if a pecl package says it's a PEAR package
                            break;
                        }
                    }

                    return PEAR::raiseError('CRITICAL ERROR: We are ' .
                        $this->_registry->parsedPackageNameToString($info) . ', but the file ' .
                        'downloaded claims to be ' .
                        $this->_registry->parsedPackageNameToString($this->getParsedPackage()));
                } while (false);
            }

            if (PEAR::isError($err) || !$this->_valid) {
                return $err;
            }
        }

        $this->_type = 'local';
        return $this->_packagefile;
    }
function & download ( ) { if ( isset ( $ this -> _packagefile ) ) { return $ this -> _packagefile ; } if ( isset ( $ this -> _downloadURL [ 'url' ] ) ) { $ this -> _isvalid = false ; $ info = $ this -> getParsedPackage ( ) ; foreach ( $ info as $ i => $ p ) { $ info [ $ i ] = strtolower ( $ p ) ; } $ err = $ this -> _fromUrl ( $ this -> _downloadURL [ 'url' ] , $ this -> _registry -> parsedPackageNameToString ( $ this -> _parsedname , true ) ) ; $ newinfo = $ this -> getParsedPackage ( ) ; foreach ( $ newinfo as $ i => $ p ) { $ newinfo [ $ i ] = strtolower ( $ p ) ; } if ( $ info != $ newinfo ) { do { if ( $ info [ 'channel' ] == 'pecl.php.net' && $ newinfo [ 'channel' ] == 'pear.php.net' ) { $ info [ 'channel' ] = 'pear.php.net' ; if ( $ info == $ newinfo ) { // skip the channel check if a pecl package says it's a PEAR package break ; } } if ( $ info [ 'channel' ] == 'pear.php.net' && $ newinfo [ 'channel' ] == 'pecl.php.net' ) { $ info [ 'channel' ] = 'pecl.php.net' ; if ( $ info == $ newinfo ) { // skip the channel check if a pecl package says it's a PEAR package break ; } } return PEAR :: raiseError ( 'CRITICAL ERROR: We are ' . $ this -> _registry -> parsedPackageNameToString ( $ info ) . ', but the file ' . 'downloaded claims to be ' . $ this -> _registry -> parsedPackageNameToString ( $ this -> getParsedPackage ( ) ) ) ; } while ( false ) ; } if ( PEAR :: isError ( $ err ) || ! $ this -> _valid ) { return $ err ; } } $ this -> _type = 'local' ; return $ this -> _packagefile ; }
Retrieve any non-local packages
@return PEAR_PackageFile_v1|PEAR_PackageFile_v2|PEAR_Error
Retrieve any non - local packages