Bug #79350 [Com]: 8.0-dev: Uncaught Error: Class 'PelEntry' not found

From: Date: Thu, 12 Mar 2020 10:51:14 +0000
Subject: Bug #79350 [Com]: 8.0-dev: Uncaught Error: Class 'PelEntry' not found
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-226058@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=79350&edit=1 ID: 79350 Comment by: bugreports at gmail dot com Reported by: bugreports at gmail dot com Summary: 8.0-dev: Uncaught Error: Class 'PelEntry' not found Status: Analyzed Type: Bug Package: Scripting Engine problem Operating System: Linux PHP Version: master-Git-2020-03-07 (Git) Block user comment: N Private report: N New Comment: sounds like a terrible BC break and at least the error message is unhelpful nonsense given that even one of the zend engine experts pointed at include at the first try :-) Previous Comments: ------------------------------------------------------------------------ [2020-03-12 10:29:14] nikic@php.net Here's a reduced test case: <?php echo new Test, "\n"; class Test { public function __toString() { echo "Early bound!"; } } ------------------------------------------------------------------------ [2020-03-12 10:22:44] nikic@php.net No, that's not it. I think the issue is that this code is relying on early binding, and early-binding on the PelEntry class is now prevented due to implicit addition of Stringable interface. ------------------------------------------------------------------------ [2020-03-12 10:09:31] nikic@php.net I think something is going wrong with a recursive require_once. ------------------------------------------------------------------------ [2020-03-07 04:12:11] bugreports at gmail dot com Description: ------------ this is only broken with PHP 8.0-dev for some time now and it's technically not possible that a class defined in the include above the extending definition is not found require_once __DIR__ . '/PelEntry.php'; class PelEntryUndefined extends PelEntry { } [builduser@testserver:/rpmbuild/SPECS]$ /home/builduser/rpmbuild/BUILD/php-8.0.0/sapi/cli/php -n /www/php-bug/test.php Fatal error: Uncaught Error: Class 'PelEntry' not found in /Volumes/dune/www-servers/php-bug/pel/PelEntryUndefined.php:59 Stack trace: #0 /Volumes/dune/www-servers/php-bug/pel/PelIfd.php(44): require_once() #1 /Volumes/dune/www-servers/php-bug/pel/PelTag.php(45): require_once('/Volumes/dune/w...') #2 /Volumes/dune/www-servers/php-bug/pel/PelEntry.php(52): require_once('/Volumes/dune/w...') #3 /Volumes/dune/www-servers/php-bug/pel/PelExif.php(47): require_once('/Volumes/dune/w...') #4 /Volumes/dune/www-servers/php-bug/pel/PelJpeg.php(49): require_once('/Volumes/dune/w...') #5 /Volumes/dune/www-servers/php-bug/test.php(2): include_once('/Volumes/dune/w...') #6 {main} thrown in /Volumes/dune/www-servers/php-bug/pel/PelEntryUndefined.php on line 59 Test script: --------------- tarball with the (i know outdated) pel-library and the simplest reproducer which works in 7.0-7.4 but no longer with HEAD https://drive.google.com/file/d/1stClmJ92hp1ZbDNbRYOGyu3FXn0ktRbI/view?usp=sharing ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=79350&edit=1

« previous php.bugs (#226058) next »