Bug #79350 [Ver]: 8.0-dev: Uncaught Error: Class 'PelEntry' not found
| From: | nikic@php.net | Date: | Thu, 12 Mar 2020 10:22:44 +0000 |
| Subject: | Bug #79350 [Ver]: 8.0-dev: Uncaught Error: Class 'PelEntry' not found | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-226055@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
Updated by: nikic@php.net
Reported by: bugreports at gmail dot com
Summary: 8.0-dev: Uncaught Error: Class 'PelEntry' not found
Status: Verified
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:
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.
Previous Comments:
------------------------------------------------------------------------
[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