$installed
$installed : array|null
This class is copied in every Composer installed project and available to all
See also https://getcomposer.org/doc/07-runtime.md#installed-versions
To require its presence, you can require composer-runtime-api ^2.0
$installed : array|null
$canGetVendors : bool|null
$installedByVendor : array[]
satisfies(\Composer\Semver\VersionParser $parser, string $packageName, string|null $constraint) : bool
Checks whether the given package satisfies a version constraint
e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
| \Composer\Semver\VersionParser | $parser | Install composer/semver to have access to this class and functionality |
| string | $packageName | |
| 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 |
getVersionRanges(string $packageName) : string
Returns a version constraint representing all the range(s) which are installed for a given package
It is easier to use this via isInstalled() with the $constraint argument if you need to check whether a given version of a package is installed, and not just whether it exists
| string | $packageName |
Version constraint usable with composer/semver
getVersion(string $packageName) : string|null
| string | $packageName |
If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
getPrettyVersion(string $packageName) : string|null
| string | $packageName |
If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
getAllRawData() : array[]
Returns the raw data of all installed.php which are currently loaded for custom implementations
| psalm-return |
list<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[]}>}> |
|---|
reload(array[] $data) : void
Lets you reload the static array from another file
This is only useful for complex integrations in which a project needs to use this class but then also needs to execute another project's autoloader in process, and wants to ensure both projects have access to their version of installed.php.
A typical case would be PHPUnit, where it would need to make sure it reads all
the data it needs from this class, then call reload() with
require $CWD/vendor/composer/installed.php (or similar) as input to make sure
the project in which it runs can then also use this class safely, without
interference between PHPUnit's dependencies and the project's dependencies.
| array[] | $data | A vendor/composer/installed.php data set |
| psalm-param |
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[]}>} $data |
|---|
| psalm-return |
list<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[]}>}> |
|---|