Fix AutoloadGenerator to work on MediaWiki-Vagrant
authorBryan Davis <bd808@wikimedia.org>
Thu, 20 Nov 2014 23:05:07 +0000 (16:05 -0700)
committerBryan Davis <bd808@wikimedia.org>
Thu, 20 Nov 2014 23:05:07 +0000 (16:05 -0700)
The use of realpath() in AutoloadGenerator::readFile() causes the
LocalSettings.php symlink to be dereferenced. Since the target file
lives outside of $IP, AutoloadGenerator would fail with an exception.

Change-Id: I4623b3da9b984026999189d70349ffb4754812a5

includes/utils/AutoloadGenerator.php

index 98efd27..727f485 100644 (file)
@@ -81,19 +81,15 @@ class AutoloadGenerator {
         * @var string $inputPath Path to a php file to find classes within
         */
        public function readFile( $inputPath ) {
-               $path = realpath( $inputPath );
-               if ( !$path ) {
-                       throw new \Exception( "Invalid path: $inputPath" );
-               }
                $len = strlen( $this->basepath );
-               if ( substr( $path, 0, $len ) !== $this->basepath ) {
+               if ( substr( $inputPath, 0, $len ) !== $this->basepath ) {
                        throw new \Exception( "Path is not within basepath: $inputPath" );
                }
                $result = $this->collector->getClasses(
-                       file_get_contents( $path )
+                       file_get_contents( $inputPath )
                );
                if ( $result ) {
-                       $shortpath = substr( $path, $len );
+                       $shortpath = substr( $inputPath, $len );
                        $this->classes[$shortpath] = $result;
                }
        }