Переглянути джерело

Can't use error_clear_last as it was introduced in PHP7.

Niels Keurentjes 9 роки тому
батько
коміт
0b55a0ca91

+ 5 - 6
src/Composer/Autoload/ClassMapGenerator.php

@@ -124,20 +124,19 @@ class ClassMapGenerator
 
         // Use @ here instead of Silencer to actively suppress 'unhelpful' output
         // @link https://github.com/composer/composer/pull/4886
-        error_clear_last();
         $contents = @php_strip_whitespace($path);
         if (!$contents) {
-            $error = error_get_last();
-            if (is_null($error)) {
-                // No error, so the input file was really empty and thus contains no classes
-                return array();
-            } elseif (!file_exists($path)) {
+            if (!file_exists($path)) {
                 $message = 'File at "%s" does not exist, check your classmap definitions';
             } elseif (!is_readable($path)) {
                 $message = 'File at "%s" is not readable, check its permissions';
+            } elseif ('' === trim(file_get_contents($path))) {
+                // The input file was really empty and thus contains no classes
+                return array();
             } else {
                 $message = 'File at "%s" could not be parsed as PHP, it may be binary or corrupted';
             }
+            $error = error_get_last();
             if (isset($error['message'])) {
                 $message .= PHP_EOL . 'The following message may be helpful:' . PHP_EOL . $error['message'];
             }

+ 1 - 1
tests/Composer/Test/Autoload/ClassMapGeneratorTest.php

@@ -113,7 +113,7 @@ class ClassMapGeneratorTest extends TestCase
 
     /**
      * @expectedException \RuntimeException
-     * @expectedExceptionMessage Could not scan for classes inside
+     * @expectedExceptionMessage does not exist
      */
     public function testFindClassesThrowsWhenFileDoesNotExist()
     {