public function validatePackageDependency($dep, $required, $params, $depv1 = false) { if ('symfony' === strtolower($dep['name'])) { return true; } if ('openpne' === strtolower($dep['name'])) { $extra = $this->_getExtraString($dep); if (isset($dep['min']) && !version_compare(OPENPNE_VERSION, $dep['min'], '>=')) { return $this->handleOpenPNEDependencyError('%s requires OpenPNE' . $extra . ', installed version is ' . OPENPNE_VERSION); } if (isset($dep['max']) && !version_compare(OPENPNE_VERSION, $dep['max'], '<=')) { return $this->handleOpenPNEDependencyError('%s requires OpenPNE' . $extra . ', installed version is ' . OPENPNE_VERSION); } if (isset($dep['exclude'])) { foreach ((array) $dep['exclude'] as $exclude) { if (version_compare(OPENPNE_VERSION, $exclude, '==')) { return $this->handleOpenPNEDependencyError('%s is not compatible with OpenPNE version ' . $exclude); } } } return true; } $result = parent::validatePackageDependency($dep, $required, $params, $depv1); if (PEAR::isError($result)) { $dep['package'] = $dep['name']; $this->failedDependency['package'][] = $dep; } return $result; }
/** * Checks that the dependency is valid. * * @param array $dependency A dependency array * * @return Boolean true if the dependency is valid, false otherwise */ protected function checkDependency($dependency) { $dependencyChecker = new PEAR_Dependency2($this->environment->getConfig(), array(), array('package' => '', 'channel' => '')); PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); $e = $dependencyChecker->validatePackageDependency($dependency, true, array()); PEAR::staticPopErrorHandling(); if (PEAR::isError($e)) { return false; } return true; }