Subversion Repositories oidplus

Rev

Rev 1407 | Rev 1422 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1407 Rev 1417
Line 96... Line 96...
96
     */
96
     */
97
    public static function isInstalled($packageName, $includeDevRequirements = true)
97
    public static function isInstalled($packageName, $includeDevRequirements = true)
98
    {
98
    {
99
        foreach (self::getInstalled() as $installed) {
99
        foreach (self::getInstalled() as $installed) {
100
            if (isset($installed['versions'][$packageName])) {
100
            if (isset($installed['versions'][$packageName])) {
101
                return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
101
                return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
102
            }
102
            }
103
        }
103
        }
104
 
104
 
105
        return false;
105
        return false;
106
    }
106
    }
Line 117... Line 117...
117
     * @param  string|null   $constraint  A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
117
     * @param  string|null   $constraint  A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
118
     * @return bool
118
     * @return bool
119
     */
119
     */
120
    public static function satisfies(VersionParser $parser, $packageName, $constraint)
120
    public static function satisfies(VersionParser $parser, $packageName, $constraint)
121
    {
121
    {
122
        $constraint = $parser->parseConstraints((string) $constraint);
122
        $constraint = $parser->parseConstraints($constraint);
123
        $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
123
        $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
124
 
124
 
125
        return $provided->matches($constraint);
125
        return $provided->matches($constraint);
126
    }
126
    }
127
 
127
 
Line 326... Line 326...
326
        if (self::$canGetVendors) {
326
        if (self::$canGetVendors) {
327
            foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
327
            foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
328
                if (isset(self::$installedByVendor[$vendorDir])) {
328
                if (isset(self::$installedByVendor[$vendorDir])) {
329
                    $installed[] = self::$installedByVendor[$vendorDir];
329
                    $installed[] = self::$installedByVendor[$vendorDir];
330
                } elseif (is_file($vendorDir.'/composer/installed.php')) {
330
                } elseif (is_file($vendorDir.'/composer/installed.php')) {
331
                    /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
331
                    $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
332
                    $required = require $vendorDir.'/composer/installed.php';
-
 
333
                    $installed[] = self::$installedByVendor[$vendorDir] = $required;
-
 
334
                    if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
332
                    if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
335
                        self::$installed = $installed[count($installed) - 1];
333
                        self::$installed = $installed[count($installed) - 1];
336
                    }
334
                    }
337
                }
335
                }
338
            }
336
            }
Line 340... Line 338...
340
 
338
 
341
        if (null === self::$installed) {
339
        if (null === self::$installed) {
342
            // only require the installed.php file if this file is loaded from its dumped location,
340
            // only require the installed.php file if this file is loaded from its dumped location,
343
            // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
341
            // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
344
            if (substr(__DIR__, -8, 1) !== 'C') {
342
            if (substr(__DIR__, -8, 1) !== 'C') {
345
                /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
343
                self::$installed = require __DIR__ . '/installed.php';
346
                $required = require __DIR__ . '/installed.php';
-
 
347
                self::$installed = $required;
-
 
348
            } else {
344
            } else {
349
                self::$installed = array();
345
                self::$installed = array();
350
            }
346
            }
351
        }
347
        }
352
 
-
 
353
        if (self::$installed !== array()) {
-
 
354
            $installed[] = self::$installed;
348
        $installed[] = self::$installed;
355
        }
-
 
356
 
349
 
357
        return $installed;
350
        return $installed;
358
    }
351
    }
359
}
352
}