コード例 #1
0
ファイル: v2.php プロジェクト: naderman/PEAR2_Pyrus
    /**
     * validate dependencies against the local registry, packages to be installed,
     * and environment (php version, OS, architecture, enabled extensions)
     *
     * @param array $toInstall an array of \PEAR2\Pyrus\Package objects
     * @param \PEAR2\MultiErrors $errs
     */
    function validateDependencies(array $toInstall, \PEAR2\MultiErrors $errs)
    {
        $dep = new \PEAR2\Pyrus\Dependency\Validator($this->packageInfo['channel'] . '/' . $this->packageInfo['name'],
            \PEAR2\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);
        }
    }