Jordi Boggiano 8 роки тому
батько
коміт
68861c48ed

+ 8 - 1
src/Composer/Autoload/AutoloadGenerator.php

@@ -526,12 +526,19 @@ EOF;
 
     protected function getAutoloadFile($vendorPathToTargetDirCode, $suffix)
     {
+        $lastChar = $vendorPathToTargetDirCode[strlen($vendorPathToTargetDirCode)-1];
+        if ("'" === $lastChar || '"' === $lastChar) {
+            $vendorPathToTargetDirCode = substr($vendorPathToTargetDirCode, 0, -1).'/autoload_real.php'.$lastChar;
+        } else {
+            $vendorPathToTargetDirCode .= " . '/autoload_real.php'";
+        }
+
         return <<<AUTOLOAD
 <?php
 
 // autoload.php @generated by Composer
 
-require_once $vendorPathToTargetDirCode . '/autoload_real.php';
+require_once $vendorPathToTargetDirCode;
 
 return ComposerAutoloaderInit$suffix::getLoader();
 

+ 1 - 1
src/Composer/Repository/ComposerRepository.php

@@ -88,7 +88,7 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito
         $this->config = $config;
         $this->options = $repoConfig['options'];
         $this->url = $repoConfig['url'];
-        $this->baseUrl = rtrim(preg_replace('{^(.*)(?:/[^/\\]+.json)?(?:[?#].*)?$}', '$1', $this->url), '/');
+        $this->baseUrl = rtrim(preg_replace('{(?:/[^/\\\\]+\.json)?(?:[?#].*)?$}', '', $this->url), '/');
         $this->io = $io;
         $this->cache = new Cache($io, $config->get('cache-repo-dir').'/'.preg_replace('{[^a-z0-9.]}i', '-', $this->url), 'a-z0-9.$');
         $this->loader = new ArrayLoader();

+ 1 - 1
tests/Composer/Test/Autoload/Fixtures/autoload_functions.php

@@ -2,6 +2,6 @@
 
 // autoload.php @generated by Composer
 
-require_once __DIR__ . '/composer' . '/autoload_real.php';
+require_once __DIR__ . '/composer/autoload_real.php';
 
 return ComposerAutoloaderInitFilesAutoload::getLoader();

+ 1 - 1
tests/Composer/Test/Autoload/Fixtures/autoload_functions_by_dependency.php

@@ -2,6 +2,6 @@
 
 // autoload.php @generated by Composer
 
-require_once __DIR__ . '/composer' . '/autoload_real.php';
+require_once __DIR__ . '/composer/autoload_real.php';
 
 return ComposerAutoloaderInitFilesAutoloadOrder::getLoader();

+ 1 - 1
tests/Composer/Test/Autoload/Fixtures/autoload_target_dir.php

@@ -2,6 +2,6 @@
 
 // autoload.php @generated by Composer
 
-require_once __DIR__ . '/composer' . '/autoload_real.php';
+require_once __DIR__ . '/composer/autoload_real.php';
 
 return ComposerAutoloaderInitTargetDir::getLoader();