Installer
in package
implements
PluginInterface, EventSubscriberInterface
Interfaces, Classes, Traits and Enums
- PluginInterface
- EventSubscriberInterface
Table of Contents
- $generatedClassTemplate : mixed
- activate() : mixed
- deactivate() : mixed
- dumpVersionsClass() : mixed
- getSubscribedEvents() : array<string|int, mixed>
- {@inheritDoc}
- uninstall() : mixed
- generateVersionsClass() : string
- getRootPackageAlias() : PackageInterface
- getVersions() : Generator|array<string|int, string>
- locateRootPackageInstallPath() : string
- writeVersionClassToFile() : mixed
Properties
$generatedClassTemplate
private
static mixed
$generatedClassTemplate
= <<<'PHP'
<?php
declare(strict_types=1);
namespace PackageVersions;
use Composer\InstalledVersions;
use OutOfBoundsException;
class_exists(InstalledVersions::class);
/**
* This class is generated by composer/package-versions-deprecated, specifically by
* @see \PackageVersions\Installer
*
* This file is overwritten at every run of `composer install` or `composer update`.
*
* @deprecated in favor of the Composer\InstalledVersions class provided by Composer 2. Require composer-runtime-api:^2 to ensure it is present.
*/
%s
{
/**
* @deprecated please use {@see self::rootPackageName()} instead.
* This constant will be removed in version 2.0.0.
*/
const ROOT_PACKAGE_NAME = '%s';
/**
* Array of all available composer packages.
* Dont read this array from your calling code, but use the \PackageVersions\Versions::getVersion() method instead.
*
* @var array<string, string>
* @internal
*/
const VERSIONS = %s;
private function __construct()
{
}
/**
* @psalm-pure
*
* @psalm-suppress ImpureMethodCall we know that {@see InstalledVersions} interaction does not
* cause any side effects here.
*/
public static function rootPackageName() : string
{
if (!self::composer2ApiUsable()) {
return self::ROOT_PACKAGE_NAME;
}
return InstalledVersions::getRootPackage()['name'];
}
/**
* @throws OutOfBoundsException If a version cannot be located.
*
* @psalm-param key-of<self::VERSIONS> $packageName
* @psalm-pure
*
* @psalm-suppress ImpureMethodCall we know that {@see InstalledVersions} interaction does not
* cause any side effects here.
*/
public static function getVersion(string $packageName): string
{
if (self::composer2ApiUsable()) {
return InstalledVersions::getPrettyVersion($packageName)
. '@' . InstalledVersions::getReference($packageName);
}
if (isset(self::VERSIONS[$packageName])) {
return self::VERSIONS[$packageName];
}
throw new OutOfBoundsException(
'Required package "' . $packageName . '" is not installed: check your ./vendor/composer/installed.json and/or ./composer.lock files'
);
}
private static function composer2ApiUsable(): bool
{
if (!class_exists(InstalledVersions::class, false)) {
return false;
}
if (method_exists(InstalledVersions::class, 'getAllRawData')) {
$rawData = InstalledVersions::getAllRawData();
if (count($rawData) === 1 && count($rawData[0]) === 0) {
return false;
}
} else {
$rawData = InstalledVersions::getRawData();
if ($rawData === null || $rawData === []) {
return false;
}
}
return true;
}
}
PHP
Methods
activate()
public
activate(Composer $composer, IOInterface $io) : mixed
Parameters
- $composer : Composer
- $io : IOInterface
Return values
mixed —deactivate()
public
deactivate(Composer $composer, IOInterface $io) : mixed
Parameters
- $composer : Composer
- $io : IOInterface
Return values
mixed —dumpVersionsClass()
public
static dumpVersionsClass(Event $composerEvent) : mixed
Parameters
- $composerEvent : Event
Tags
Return values
mixed —getSubscribedEvents()
{@inheritDoc}
public
static getSubscribedEvents() : array<string|int, mixed>
Return values
array<string|int, mixed> —uninstall()
public
uninstall(Composer $composer, IOInterface $io) : mixed
Parameters
- $composer : Composer
- $io : IOInterface
Return values
mixed —generateVersionsClass()
private
static generateVersionsClass(string $rootPackageName, array<string|int, string> $versions) : string
Parameters
- $rootPackageName : string
- $versions : array<string|int, string>
Return values
string —getRootPackageAlias()
private
static getRootPackageAlias(RootPackageInterface $rootPackage) : PackageInterface
Parameters
- $rootPackage : RootPackageInterface
Return values
PackageInterface —getVersions()
private
static getVersions(Locker $locker, RootPackageInterface $rootPackage) : Generator|array<string|int, string>
Parameters
- $locker : Locker
- $rootPackage : RootPackageInterface
Tags
Return values
Generator|array<string|int, string> —locateRootPackageInstallPath()
private
static locateRootPackageInstallPath(Config $composerConfig, RootPackageInterface $rootPackage) : string
Parameters
- $composerConfig : Config
- $rootPackage : RootPackageInterface
Tags
Return values
string —writeVersionClassToFile()
private
static writeVersionClassToFile(string $versionClassSource, Composer $composer, IOInterface $io) : mixed
Parameters
- $versionClassSource : string
- $composer : Composer
- $io : IOInterface