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;
 }