Documentation

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
throws
RuntimeException
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
psalm-return

Generator<string, string>

Return values
Generator|array<string|int, string>

locateRootPackageInstallPath()

private static locateRootPackageInstallPath(Config $composerConfig, RootPackageInterface $rootPackage) : string
Parameters
$composerConfig : Config
$rootPackage : RootPackageInterface
Tags
throws
RuntimeException
Return values
string

writeVersionClassToFile()

private static writeVersionClassToFile(string $versionClassSource, Composer $composer, IOInterface $io) : mixed
Parameters
$versionClassSource : string
$composer : Composer
$io : IOInterface
Tags
throws
RuntimeException
Return values
mixed

Search results