Merge branch '1.3'
commit
e42e1156d5
|
@ -374,9 +374,13 @@ class ClassLoader
|
||||||
|
|
||||||
$first = $class[0];
|
$first = $class[0];
|
||||||
if (isset($this->prefixLengthsPsr4[$first])) {
|
if (isset($this->prefixLengthsPsr4[$first])) {
|
||||||
foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
|
$subPath = $class;
|
||||||
if (0 === strpos($class, $prefix)) {
|
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
||||||
foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
|
$subPath = substr($subPath, 0, $lastPos);
|
||||||
|
$search = $subPath.'\\';
|
||||||
|
if (isset($this->prefixDirsPsr4[$search])) {
|
||||||
|
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
||||||
|
$length = $this->prefixLengthsPsr4[$first][$search];
|
||||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
|
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
|
||||||
return $file;
|
return $file;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,10 @@ class PathDownloader extends FileDownloader implements VcsCapableDownloaderInter
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strpos(realpath($path) . DIRECTORY_SEPARATOR, $realUrl . DIRECTORY_SEPARATOR) === 0) {
|
if (strpos(realpath($path) . DIRECTORY_SEPARATOR, $realUrl . DIRECTORY_SEPARATOR) === 0) {
|
||||||
|
// IMPORTANT NOTICE: If you wish to change this, don't. You are wasting your time and ours.
|
||||||
|
//
|
||||||
|
// Please see https://github.com/composer/composer/pull/5974 and https://github.com/composer/composer/pull/6174
|
||||||
|
// for previous attempts that were shut down because they did not work well enough or introduced too many risks.
|
||||||
throw new \RuntimeException(sprintf(
|
throw new \RuntimeException(sprintf(
|
||||||
'Package %s cannot install to "%s" inside its source at "%s"',
|
'Package %s cannot install to "%s" inside its source at "%s"',
|
||||||
$package->getName(), realpath($path), $realUrl
|
$package->getName(), realpath($path), $realUrl
|
||||||
|
|
|
@ -301,12 +301,20 @@ class SvnDriver extends VcsDriver
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Subversion client 1.7 and older
|
||||||
if (false !== stripos($processExecutor->getErrorOutput(), 'authorization failed:')) {
|
if (false !== stripos($processExecutor->getErrorOutput(), 'authorization failed:')) {
|
||||||
// This is likely a remote Subversion repository that requires
|
// This is likely a remote Subversion repository that requires
|
||||||
// authentication. We will handle actual authentication later.
|
// authentication. We will handle actual authentication later.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Subversion client 1.8 and newer
|
||||||
|
if (false !== stripos($processExecutor->getErrorOutput(), 'Authentication failed')) {
|
||||||
|
// This is likely a remote Subversion or newer repository that requires
|
||||||
|
// authentication. We will handle actual authentication later.
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue