function uninstallPackage(&$pkg)
    {
        $data = $this->_getDepDB();
        unset($this->_cache);
        if (is_object($pkg)) {
            $channel = strtolower($pkg->getChannel());
            $package = strtolower($pkg->getPackage());
        } else {
            $channel = strtolower($pkg['channel']);
            $package = strtolower($pkg['package']);
        }

        if (!isset($data['dependencies'][$channel][$package])) {
            return true;
        }

        foreach ($data['dependencies'][$channel][$package] as $dep) {
            $found      = false;
            $depchannel = isset($dep['dep']['uri']) ? '__uri' : strtolower($dep['dep']['channel']);
            $depname    = strtolower($dep['dep']['name']);
            if (isset($data['packages'][$depchannel][$depname])) {
                foreach ($data['packages'][$depchannel][$depname] as $i => $info) {
                    if ($info['channel'] == $channel && $info['package'] == $package) {
                        $found = true;
                        break;
                    }
                }
            }

            if ($found) {
                unset($data['packages'][$depchannel][$depname][$i]);
                if (!count($data['packages'][$depchannel][$depname])) {
                    unset($data['packages'][$depchannel][$depname]);
                    if (!count($data['packages'][$depchannel])) {
                        unset($data['packages'][$depchannel]);
                    }
                } else {
                    $data['packages'][$depchannel][$depname] =
                        array_values($data['packages'][$depchannel][$depname]);
                }
            }
        }

        unset($data['dependencies'][$channel][$package]);
        if (!count($data['dependencies'][$channel])) {
            unset($data['dependencies'][$channel]);
        }

        if (!count($data['dependencies'])) {
            unset($data['dependencies']);
        }

        if (!count($data['packages'])) {
            unset($data['packages']);
        }

        $this->_writeDepDB($data);
    }
function uninstallPackage(&$pkg)
    {
        $data = $this->_getDepDB();
        unset($this->_cache);
        if (is_object($pkg)) {
            $channel = strtolower($pkg->getChannel());
            $package = strtolower($pkg->getPackage());
        } else {
            $channel = strtolower($pkg['channel']);
            $package = strtolower($pkg['package']);
        }

        if (!isset($data['dependencies'][$channel][$package])) {
            return true;
        }

        foreach ($data['dependencies'][$channel][$package] as $dep) {
            $found      = false;
            $depchannel = isset($dep['dep']['uri']) ? '__uri' : strtolower($dep['dep']['channel']);
            $depname    = strtolower($dep['dep']['name']);
            if (isset($data['packages'][$depchannel][$depname])) {
                foreach ($data['packages'][$depchannel][$depname] as $i => $info) {
                    if ($info['channel'] == $channel && $info['package'] == $package) {
                        $found = true;
                        break;
                    }
                }
            }

            if ($found) {
                unset($data['packages'][$depchannel][$depname][$i]);
                if (!count($data['packages'][$depchannel][$depname])) {
                    unset($data['packages'][$depchannel][$depname]);
                    if (!count($data['packages'][$depchannel])) {
                        unset($data['packages'][$depchannel]);
                    }
                } else {
                    $data['packages'][$depchannel][$depname] =
                        array_values($data['packages'][$depchannel][$depname]);
                }
            }
        }

        unset($data['dependencies'][$channel][$package]);
        if (!count($data['dependencies'][$channel])) {
            unset($data['dependencies'][$channel]);
        }

        if (!count($data['dependencies'])) {
            unset($data['dependencies']);
        }

        if (!count($data['packages'])) {
            unset($data['packages']);
        }

        $this->_writeDepDB($data);
    }
function uninstallPackage ( & $ pkg ) { $ data = $ this -> _getDepDB ( ) ; unset ( $ this -> _cache ) ; if ( is_object ( $ pkg ) ) { $ channel = strtolower ( $ pkg -> getChannel ( ) ) ; $ package = strtolower ( $ pkg -> getPackage ( ) ) ; } else { $ channel = strtolower ( $ pkg [ 'channel' ] ) ; $ package = strtolower ( $ pkg [ 'package' ] ) ; } if ( ! isset ( $ data [ 'dependencies' ] [ $ channel ] [ $ package ] ) ) { return true ; } foreach ( $ data [ 'dependencies' ] [ $ channel ] [ $ package ] as $ dep ) { $ found = false ; $ depchannel = isset ( $ dep [ 'dep' ] [ 'uri' ] ) ? '__uri' : strtolower ( $ dep [ 'dep' ] [ 'channel' ] ) ; $ depname = strtolower ( $ dep [ 'dep' ] [ 'name' ] ) ; if ( isset ( $ data [ 'packages' ] [ $ depchannel ] [ $ depname ] ) ) { foreach ( $ data [ 'packages' ] [ $ depchannel ] [ $ depname ] as $ i => $ info ) { if ( $ info [ 'channel' ] == $ channel && $ info [ 'package' ] == $ package ) { $ found = true ; break ; } } } if ( $ found ) { unset ( $ data [ 'packages' ] [ $ depchannel ] [ $ depname ] [ $ i ] ) ; if ( ! count ( $ data [ 'packages' ] [ $ depchannel ] [ $ depname ] ) ) { unset ( $ data [ 'packages' ] [ $ depchannel ] [ $ depname ] ) ; if ( ! count ( $ data [ 'packages' ] [ $ depchannel ] ) ) { unset ( $ data [ 'packages' ] [ $ depchannel ] ) ; } } else { $ data [ 'packages' ] [ $ depchannel ] [ $ depname ] = array_values ( $ data [ 'packages' ] [ $ depchannel ] [ $ depname ] ) ; } } } unset ( $ data [ 'dependencies' ] [ $ channel ] [ $ package ] ) ; if ( ! count ( $ data [ 'dependencies' ] [ $ channel ] ) ) { unset ( $ data [ 'dependencies' ] [ $ channel ] ) ; } if ( ! count ( $ data [ 'dependencies' ] ) ) { unset ( $ data [ 'dependencies' ] ) ; } if ( ! count ( $ data [ 'packages' ] ) ) { unset ( $ data [ 'packages' ] ) ; } $ this -> _writeDepDB ( $ data ) ; }
Remove dependencies of a package that is being uninstalled, or upgraded.

Upgraded packages first uninstall, then install
@param PEAR_PackageFile_v1|PEAR_PackageFile_v2|array If an array, then it must have
indices 'channel' and 'package'
Remove dependencies of a package that is being uninstalled or upgraded .