]> granicus.if.org Git - php/commitdiff
Fix an undefined class error running gen_stub in php8
authorTyson Andre <tysonandre775@hotmail.com>
Sat, 11 Apr 2020 20:52:47 +0000 (16:52 -0400)
committerTyson Andre <tysonandre775@hotmail.com>
Sat, 11 Apr 2020 21:17:28 +0000 (17:17 -0400)
For whatever reason, php 8 would not have loaded the subsequent classes when
running `php build/gen_stub.php path/to/filename.php`.
I assume it didn't load the classes immediately because there's a possibility
the code before it would throw.
(Probably because __toString was added recently and prevents early binding)

Also, fix a typo

Closes GH-5369

build/Makefile.global
build/gen_stub.php

index 7b5d2a4919146672d0805485c3790742ade903e3..237308d2659765a832610bfd9f707c3f3589ce3f 100644 (file)
@@ -142,7 +142,7 @@ prof-clean:
 prof-use:
        CCACHE_DISABLE=1 $(MAKE) PROF_FLAGS=-fprofile-use all
 
-# olny php above 7.1.0 supports nullable return type
+# only php above 7.1.0 supports nullable return type
 %_arginfo.h: %.stub.php
        @if test -e "$(top_srcdir)/build/gen_stub.php"; then \
                if test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \
index 02a035debd1805bd2b2103c5059a3f00e575eb5a..b108191f64447fa18a7e0e4d63ded72ee1afc8ad 100755 (executable)
@@ -26,21 +26,6 @@ class CustomPrettyPrinter extends Standard
     }
 }
 
-if ($argc >= 2) {
-    if (is_file($argv[1])) {
-        // Generate single file.
-        processStubFile($argv[1]);
-    } else if (is_dir($argv[1])) {
-        processDirectory($argv[1]);
-    } else {
-        echo "$argv[1] is neither a file nor a directory.\n";
-        exit(1);
-    }
-} else {
-    // Regenerate all stub files we can find.
-    processDirectory('.');
-}
-
 function processDirectory(string $dir) {
     $it = new RecursiveIteratorIterator(
         new RecursiveDirectoryIterator($dir),
@@ -1044,3 +1029,18 @@ function initPhpParser() {
         }
     });
 }
+
+if ($argc >= 2) {
+    if (is_file($argv[1])) {
+        // Generate single file.
+        processStubFile($argv[1]);
+    } else if (is_dir($argv[1])) {
+        processDirectory($argv[1]);
+    } else {
+        echo "$argv[1] is neither a file nor a directory.\n";
+        exit(1);
+    }
+} else {
+    // Regenerate all stub files we can find.
+    processDirectory('.');
+}