[php-src] Issue #18714: Opcache does not handle class hoisting with @opcache_compile_file

From: Date: Sat, 31 May 2025 01:25:08 +0000
Subject: [php-src] Issue #18714: Opcache does not handle class hoisting with @opcache_compile_file
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-250189@lists.php.net to get a copy of this message
Issue: https://github.com/php/php-src/issues/18714 Author: zavierboyd ### Description The following code: ```php // test.php <?php $x = new HelloWorld(); class HelloWorld {} ``` ```php // exec.php <?php @opcache_compile_file(__DIR__.'/test.php'); require_once __DIR__.'/test.php'; ``` When I ran php exec.php it Resulted in this output: ``` [30-May-2025 08:10:33 UTC] PHP Fatal error: Uncaught Error: Class "HelloWorld" not found in /usr/src/wordpress/wp-includes/SimplePie/test.php:3 Stack trace: #0 /usr/src/wordpress/wp-includes/SimplePie/exec.php(3): require_once() #1 {main} thrown in /usr/src/wordpress/wp-includes/SimplePie/test.php on line 3 ``` But I expected this output instead: ``` ``` empty as it does not return anything When just running test.php it runs successfully. This causes an error in Wordpress file /usr/src/wordpress/wp-includes/SimplePie/autoloader.php when we use Opcache preloading preventing it from working properly. ### PHP Version ```plain PHP 8.1.32 (cli) (built: Apr 29 2025 20:07:59) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.32, Copyright (c) Zend Technologies with Zend OPcache v8.1.32, Copyright (c), by Zend Technologies ``` ### Operating System _No response_

« previous php.bugs (#250189) next »