Browse Source

Allow PHP 5.2 autoloaders to consume namespace, classmap and include path files, fixes #1730

Jordi Boggiano 12 years ago
parent
commit
3cc5698e7b

+ 4 - 3
src/Composer/Autoload/AutoloadGenerator.php

@@ -48,6 +48,7 @@ class AutoloadGenerator
 
         $relVendorPath = $filesystem->findShortestPath(getcwd(), $vendorPath, true);
         $vendorPathCode = $filesystem->findShortestPathCode(realpath($targetDir), $vendorPath, true);
+        $vendorPathCode52 = str_replace('__DIR__', 'dirname(__FILE__)', $vendorPathCode);
         $vendorPathToTargetDirCode = $filesystem->findShortestPathCode($vendorPath, realpath($targetDir), true);
 
         $appBaseDirCode = $filesystem->findShortestPathCode($vendorPath, getcwd(), true);
@@ -58,7 +59,7 @@ class AutoloadGenerator
 
 // autoload_namespaces.php generated by Composer
 
-\$vendorDir = $vendorPathCode;
+\$vendorDir = $vendorPathCode52;
 \$baseDir = $appBaseDirCode;
 
 return array(
@@ -88,7 +89,7 @@ EOF;
 
 // autoload_classmap.php generated by Composer
 
-\$vendorDir = $vendorPathCode;
+\$vendorDir = $vendorPathCode52;
 \$baseDir = $appBaseDirCode;
 
 return array(
@@ -180,7 +181,7 @@ EOF;
 
         file_put_contents($targetDir.'/autoload_namespaces.php', $namespacesFile);
         file_put_contents($targetDir.'/autoload_classmap.php', $classmapFile);
-        if ($includePathFile = $this->getIncludePathsFile($packageMap, $filesystem, $relVendorPath, $vendorPath, $vendorPathCode, $appBaseDirCode)) {
+        if ($includePathFile = $this->getIncludePathsFile($packageMap, $filesystem, $relVendorPath, $vendorPath, $vendorPathCode52, $appBaseDirCode)) {
             file_put_contents($targetDir.'/include_paths.php', $includePathFile);
         }
         file_put_contents($vendorPath.'/autoload.php', $this->getAutoloadFile($vendorPathToTargetDirCode, $suffix));

+ 2 - 2
tests/Composer/Test/Autoload/AutoloadGeneratorTest.php

@@ -475,7 +475,7 @@ class AutoloadGeneratorTest extends TestCase
 
 // autoload_namespaces.php generated by Composer
 
-\$vendorDir = dirname(__DIR__);
+\$vendorDir = dirname(dirname(__FILE__));
 \$baseDir = dirname(\$vendorDir);
 
 return array(
@@ -491,7 +491,7 @@ EOF;
 
 // autoload_classmap.php generated by Composer
 
-\$vendorDir = dirname(__DIR__);
+\$vendorDir = dirname(dirname(__FILE__));
 \$baseDir = dirname(\$vendorDir);
 
 return array(

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

@@ -2,7 +2,7 @@
 
 // autoload_classmap.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(

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

@@ -2,7 +2,7 @@
 
 // autoload_classmap.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname(dirname($vendorDir));
 
 return array(

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

@@ -2,7 +2,7 @@
 
 // autoload_classmap.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = $vendorDir;
 
 return array(

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

@@ -2,7 +2,7 @@
 
 // autoload_classmap.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(

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

@@ -2,7 +2,7 @@
 
 // autoload_classmap.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(

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

@@ -2,7 +2,7 @@
 
 // autoload_classmap.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(

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

@@ -2,7 +2,7 @@
 
 // autoload_namespaces.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(

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

@@ -2,7 +2,7 @@
 
 // autoload_namespaces.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname(dirname($vendorDir));
 
 return array(

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

@@ -2,7 +2,7 @@
 
 // autoload_namespaces.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = $vendorDir;
 
 return array(

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

@@ -2,7 +2,7 @@
 
 // autoload_namespaces.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(

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

@@ -2,7 +2,7 @@
 
 // include_paths.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(