Fix autoload handling of main project
parent
f5b7e968b2
commit
cb44ba8325
|
@ -75,11 +75,20 @@ EOF;
|
|||
$autoloads = $this->parseAutoloads($packageMap);
|
||||
$vendorPath = $installationManager->getVendorPath();
|
||||
|
||||
$realVendorPath = realpath($vendorPath);
|
||||
$vendorPathDepth = substr_count(strtr(substr($realVendorPath, strlen(getcwd())), '\\', '/'), '/');
|
||||
$appBaseDir = str_repeat('dirname(', $vendorPathDepth).'$baseDir'.str_repeat(')', $vendorPathDepth);
|
||||
|
||||
if (isset($autoloads['psr-0'])) {
|
||||
foreach ($autoloads['psr-0'] as $def) {
|
||||
if (!$this->isAbsolutePath($def['path'])) {
|
||||
$def['path'] = substr($def['path'], strlen($vendorPath));
|
||||
$baseDir = '$baseDir . ';
|
||||
if (strpos($def['path'], $vendorPath) === 0) {
|
||||
$def['path'] = substr($def['path'], strlen($vendorPath));
|
||||
$baseDir = '$baseDir . ';
|
||||
} else {
|
||||
$def['path'] = '/'.$def['path'];
|
||||
$baseDir = $appBaseDir . ' . ';
|
||||
}
|
||||
} else {
|
||||
$baseDir = '';
|
||||
}
|
||||
|
|
|
@ -44,9 +44,9 @@ class InstallationManager
|
|||
throw new \InvalidArgumentException("Vendor dir ($vendorDir) must be within the current working directory ($basePath).");
|
||||
}
|
||||
// convert to relative path
|
||||
$this->vendorPath = substr($vendorDir, strlen($basePath)+1);
|
||||
$this->vendorPath = rtrim(substr($vendorDir, strlen($basePath)+1), '/');
|
||||
} else {
|
||||
$this->vendorPath = $vendorDir;
|
||||
$this->vendorPath = rtrim($vendorDir, '/');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue