/** * validate dependencies against the local registry, packages to be installed, * and environment (php version, OS, architecture, enabled extensions) * * @param array $toInstall an array of \Pyrus\Package objects * @param \PEAR2\MultiErrors $errs */ function validateDependencies(array $toInstall, \PEAR2\MultiErrors $errs) { $dep = new \Pyrus\Dependency\Validator($this->packageInfo['channel'] . '/' . $this->packageInfo['name'], \Pyrus\Validate::DOWNLOADING, $errs); $dep->validatePhpDependency($this->dependencies['required']->php); $dep->validatePearinstallerDependency($this->dependencies['required']->pearinstaller); foreach (array('required', 'optional') as $required) { foreach ($this->dependencies[$required]->package as $d) { $dep->validatePackageDependency($d, $toInstall); } foreach ($this->dependencies[$required]->subpackage as $d) { $dep->validateSubpackageDependency($d, $toInstall); } foreach ($this->dependencies[$required]->extension as $d) { $dep->validateExtensionDependency($d); } } foreach ($this->dependencies['required']->arch as $d) { $dep->validateArchDependency($d); } foreach ($this->dependencies['required']->os as $d) { $dep->validateOsDependency($d); } }