1
0
Fork 0

Make sure scripts calling composer call the correct composer binary even if the project requires composer/composer, fixes #8748

pull/8760/head
Jordi Boggiano 2020-04-09 15:43:47 +02:00
parent ccc8829ed9
commit b79f2b5e0f
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC
1 changed files with 4 additions and 1 deletions

View File

@ -547,7 +547,10 @@ class EventDispatcher
if (is_dir($binDir)) {
$binDir = realpath($binDir);
if (isset($_SERVER[$pathStr]) && !preg_match('{(^|'.PATH_SEPARATOR.')'.preg_quote($binDir).'($|'.PATH_SEPARATOR.')}', $_SERVER[$pathStr])) {
$_SERVER[$pathStr] = $binDir.PATH_SEPARATOR.getenv($pathStr);
// prepend the COMPOSER_BINARY dir to the path to make sure that scripts running "composer" will run the expected composer
// from current path resolution, even if bin-dir contains composer too because the project requires composer/composer
// see https://github.com/composer/composer/issues/8748
$_SERVER[$pathStr] = dirname(getenv('COMPOSER_BINARY')).PATH_SEPARATOR.$binDir.PATH_SEPARATOR.getenv($pathStr);
putenv($pathStr.'='.$_SERVER[$pathStr]);
}
}