Fix support of aliases combined with reference locked packages, fixes #1631
parent
57959c096e
commit
c29f3c698e
|
@ -103,7 +103,7 @@ class RootPackageLoader extends ArrayLoader
|
|||
private function extractAliases(array $requires, array $aliases)
|
||||
{
|
||||
foreach ($requires as $reqName => $reqVersion) {
|
||||
if (preg_match('{^([^,\s]+) +as +([^,\s]+)$}', $reqVersion, $match)) {
|
||||
if (preg_match('{^([^,\s#]+)(?:#[^ ]+)? +as +([^,\s]+)$}', $reqVersion, $match)) {
|
||||
$aliases[] = array(
|
||||
'package' => strtolower($reqName),
|
||||
'version' => $this->versionParser->normalize($match[1], $reqVersion),
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
--TEST--
|
||||
Aliases of referenced packages work
|
||||
--COMPOSER--
|
||||
{
|
||||
"repositories": [
|
||||
{
|
||||
"type": "package",
|
||||
"package": [
|
||||
{
|
||||
"name": "a/aliased", "version": "dev-master",
|
||||
"source": { "reference": "orig", "type": "git", "url": "" }
|
||||
},
|
||||
{
|
||||
"name": "b/requirer", "version": "1.0.0",
|
||||
"require": { "a/aliased": "1.0.0" },
|
||||
"source": { "reference": "1.0.0", "type": "git", "url": "" }
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"a/aliased": "dev-master#abcd as 1.0.0",
|
||||
"b/requirer": "*"
|
||||
}
|
||||
}
|
||||
--RUN--
|
||||
install
|
||||
--EXPECT--
|
||||
Installing a/aliased (dev-master abcd)
|
||||
Marking a/aliased (1.0.0) as installed, alias of a/aliased (dev-master abcd)
|
||||
Installing b/requirer (1.0.0)
|
Loading…
Reference in New Issue