Mage_Connect_Packager::getUninstallList PHP Method

getUninstallList() public method

Get uninstall list
public getUninstallList ( string $chanName, string $package, Mage_Connect_Singleconfig $cache, Mage_Connect_Config $config, boolean $withDepsRecursive = true ) : array
$chanName string
$package string
$cache Mage_Connect_Singleconfig
$config Mage_Connect_Config
$withDepsRecursive boolean
return array
    public function getUninstallList($chanName, $package, $cache, $config, $withDepsRecursive = true)
    {
        static $level = 0;
        static $hash = array();
        $chanName = $cache->chanName($chanName);
        $keyOuter = $chanName . "/" . $package;
        $level++;
        try {
            $chanName = $cache->chanName($chanName);
            if (!$cache->hasPackage($chanName, $package)) {
                $level--;
                if ($level == 0) {
                    $hash = array();
                    return array('list' => array());
                }
                return;
            }
            $dependencies = $cache->getPackageDependencies($chanName, $package);
            $data = $cache->getPackage($chanName, $package);
            $version = $data['version'];
            $keyOuter = $chanName . "/" . $package;
            //print "Processing outer: {$keyOuter} \n";
            $hash[$keyOuter] = array('name' => $package, 'channel' => $chanName, 'version' => $version, 'packages' => $dependencies);
            if ($withDepsRecursive) {
                $flds = array('name', 'channel', 'min', 'max');
                $fldsCount = count($flds);
                foreach ($dependencies as $row) {
                    foreach ($flds as $key) {
                        $varName = "p" . ucfirst($key);
                        ${$varName} = $row[$key];
                    }
                    $method = __FUNCTION__;
                    $keyInner = $pChannel . "/" . $pName;
                    if (!isset($hash[$keyInner])) {
                        $this->{$method}($pChannel, $pName, $cache, $config, $withDepsRecursive, false);
                    }
                }
            }
        } catch (Exception $e) {
        }
        $level--;
        if (0 === $level) {
            $out = $this->processDepsHash($hash);
            $hash = array();
            return array('list' => $out);
        }
    }