浏览代码

Require file autoloads after the autoloader is registered

Jordi Boggiano 13 年之前
父节点
当前提交
adaa788955

+ 6 - 6
src/Composer/Autoload/AutoloadGenerator.php

@@ -124,7 +124,7 @@ EOF;
         $filesCode = "";
         $autoloads['files'] = new \RecursiveIteratorIterator(new \RecursiveArrayIterator($autoloads['files']));
         foreach ($autoloads['files'] as $functionFile) {
-            $filesCode .= 'require __DIR__ . '. var_export('/'.$filesystem->findShortestPath($vendorPath, $functionFile), true).";\n";
+            $filesCode .= '    require __DIR__ . '. var_export('/'.$filesystem->findShortestPath($vendorPath, $functionFile), true).";\n";
         }
 
         file_put_contents($targetDir.'/autoload_namespaces.php', $namespacesFile);
@@ -286,7 +286,7 @@ EOF;
 if (!class_exists('Composer\\\\Autoload\\\\ClassLoader', false)) {
     require $vendorPathToTargetDirCode . '/ClassLoader.php';
 }
-$filesCode
+
 return call_user_func(function() {
     \$loader = new \\Composer\\Autoload\\ClassLoader();
     \$composerDir = $vendorPathToTargetDirCode;
@@ -328,10 +328,10 @@ CLASSMAP;
 
         $file .= $targetDirLoader;
 
-        return $file . <<<'FOOTER'
-    $loader->register();
-
-    return $loader;
+        return $file . <<<FOOTER
+    \$loader->register();
+$filesCode
+    return \$loader;
 });
 
 FOOTER;

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

@@ -5,9 +5,6 @@ if (!class_exists('Composer\\Autoload\\ClassLoader', false)) {
     require __DIR__ . '/composer' . '/ClassLoader.php';
 }
 
-require __DIR__ . '/a/a/test.php';
-require __DIR__ . '/b/b/test2.php';
-
 return call_user_func(function() {
     $loader = new \Composer\Autoload\ClassLoader();
     $composerDir = __DIR__ . '/composer';
@@ -24,5 +21,8 @@ return call_user_func(function() {
 
     $loader->register();
 
+    require __DIR__ . '/a/a/test.php';
+    require __DIR__ . '/b/b/test2.php';
+
     return $loader;
 });