Exemple #1
0
 /**
  * Get uninstall list
  * @param string $chanName
  * @param string $package
  * @param Mage_Connect_Singleconfig $cache
  * @param Mage_Connect_Config $config
  * @param bool $withDepsRecursive
  * @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) {
         //$this->_failed[] = array('name'=>$package, 'channel'=>$chanName, 'max'=>$versionMax, 'min'=>$versionMin, 'reason'=>$e->getMessage());
     }
     $level--;
     if (0 === $level) {
         $out = $this->processDepsHash($hash);
         $hash = array();
         return array('list' => $out);
     }
 }
Exemple #2
0
 /**
  * Get uninstall list
  *
  * @param string $chanName
  * @param string $package
  * @param Mage_Connect_Singleconfig $cache
  * @param Mage_Connect_Config $config
  * @param bool $withDepsRecursive
  * @return array|null
  */
 public function getUninstallList($chanName, $package, $cache, $config, $withDepsRecursive = true)
 {
     static $level = 0;
     static $hash = array();
     $chanName = $cache->chanName($chanName);
     $level++;
     try {
         $chanName = $cache->chanName($chanName);
         if (!$cache->hasPackage($chanName, $package)) {
             $level--;
             if ($level == 0) {
                 $hash = array();
                 return array('list' => array());
             }
             return null;
         }
         $dependencies = $cache->getPackageDependencies($chanName, $package);
         $data = $cache->getPackage($chanName, $package);
         $version = $data['version'];
         $hash[$chanName . "/" . $package] = array('name' => $package, 'channel' => $chanName, 'version' => $version, 'packages' => $dependencies);
         if ($withDepsRecursive) {
             $fields = array('name', 'channel', 'min', 'max');
             foreach ($dependencies as $row) {
                 /**
                  * Converts an array to variables
                  * @var $pChannel string Channel Name
                  * @var $pName string Package Name
                  */
                 foreach ($fields 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);
     }
     return null;
 }