Example #1
0
 /**
  * @param array dependency information (2.0 format)
  * @param boolean whether this is a required dependency
  * @param array a list of downloaded packages to be installed, if any
  */
 function validatePackageDependency(\PEAR2\Pyrus\PackageFile\v2\Dependencies\Package $dep, $params)
 {
     if ($this->_state != Validate::INSTALLING && $this->_state != Validate::DOWNLOADING) {
         return true;
     }
     $required = $dep->deptype == 'required';
     if (isset($dep->providesextension)) {
         if ($this->extension_loaded($dep->providesextension)) {
             $req = $required ? 'required' : 'optional';
             $info = $dep->getInfo();
             $info['name'] = $info['providesextension'];
             $subdep = new \PEAR2\Pyrus\PackageFile\v2\Dependencies\Package($req, 'extension', null, $info, 0);
             $ret = $this->validateExtensionDependency($subdep);
             if ($ret === true) {
                 return true;
             }
         }
     }
     if ($this->_state == Validate::INSTALLING) {
         return $this->_validatePackageInstall($dep);
     }
     if ($this->_state == Validate::DOWNLOADING) {
         return $this->_validatePackageDownload($dep, $params);
     }
 }