\ComposerInstalledVersions

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

Summary

Methods
Properties
Constants
getInstalledPackages()
getInstalledPackagesByType()
isInstalled()
satisfies()
getVersionRanges()
getVersion()
getPrettyVersion()
getReference()
getInstallPath()
getRootPackage()
getRawData()
getAllRawData()
reload()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
getInstalled()
$installed
$canGetVendors
$installedByVendor
N/A

Properties

$installed

$installed : array|null

Type

array|null

$canGetVendors

$canGetVendors : bool|null

Type

bool|null

$installedByVendor

$installedByVendor : array[]

Type

array[]

Methods

getInstalledPackages()

getInstalledPackages() : string[]

Returns a list of all package names which are present, either by being installed, replaced or provided

Returns

string[] —

getInstalledPackagesByType()

getInstalledPackagesByType(string  $type) : string[]

Returns a list of all package names with a specific type e.g. 'library'

Parameters

string $type

Returns

string[] —

isInstalled()

isInstalled(string  $packageName, bool  $includeDevRequirements = true) : bool

Checks whether the given package is installed

This also returns true if the package name is provided or replaced by another package

Parameters

string $packageName
bool $includeDevRequirements

Returns

bool —

satisfies()

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')

Parameters

\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

Returns

bool —

getVersionRanges()

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

Parameters

string $packageName

Returns

string —

Version constraint usable with composer/semver

getVersion()

getVersion(string  $packageName) : string|null

Parameters

string $packageName

Returns

string|null —

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()

getPrettyVersion(string  $packageName) : string|null

Parameters

string $packageName

Returns

string|null —

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

getReference()

getReference(string  $packageName) : string|null

Parameters

string $packageName

Returns

string|null —

If the package is being replaced or provided but is not really installed, null will be returned as reference

getInstallPath()

getInstallPath(string  $packageName) : string|null

Parameters

string $packageName

Returns

string|null —

If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.

getRootPackage()

getRootPackage() : array

Returns

array —

getRawData()

getRawData() : array[]

Returns the raw installed.php data for custom implementations

Returns

array[] —

getAllRawData()

getAllRawData() : array[]

Returns the raw data of all installed.php which are currently loaded for custom implementations

Returns

array[] —

reload()

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.

Parameters

array[] $data

A vendor/composer/installed.php data set

getInstalled()

getInstalled() : array[]

Returns

array[] —