Bug #55300 [Com]: \DirectoryIterator, parent::__construct() and \LogicException

From: Date: Fri, 02 Sep 2011 20:03:27 +0000
Subject: Bug #55300 [Com]: \DirectoryIterator, parent::__construct() and \LogicException
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-163262@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=55300&edit=1

 ID:                 55300
 Comment by:         krossekrabbe at gmail dot com
 Reported by:        frederic dot hardy at mageekbox dot net
 Summary:            \DirectoryIterator, parent::__construct() and
                     \LogicException
 Status:             Assigned
 Type:               Bug
 Package:            SPL related
 Operating System:   Linux
 PHP Version:        5.4.0alpha2
 Assigned To:        cataphract
 Block user comment: N
 Private report:     N

 New Comment:

No, it's not only a BC break. It's exactly the same, it is not possible to extend 
the class. Not when calling parent::__construct(), nor when not overriding 
__construct() at all.


Previous Comments:
------------------------------------------------------------------------
[2011-08-09 08:52:19] cataphract@php.net

I wouldn't consider these duplicates. #55175 is an actual problem, this is simply an intended
BC break that turned out to have a larger impact than I expected. I'll take care of both not
after the beginning of next week.

------------------------------------------------------------------------
[2011-08-09 08:46:37] seld@php.net

Actually according to my test case in https://bugs.php.net/bug.php?id=55175 - it's
even happening if you don't redefine the constructor at all. It prevents extending the class
altogether, which makes no sense to me.

------------------------------------------------------------------------
[2011-08-09 08:44:46] seld@php.net

The main issue is not that it's a BC break I'd say, it's that apparently adding the
call to parent::__construct does not fix the issue, the exception is always thrown if you try to
have your own constructor in the extending class.

BTW: This is a duplicate of https://bugs.php.net/bug.php?id=55175 IMO.

------------------------------------------------------------------------
[2011-08-04 06:56:27] frederic dot hardy at mageekbox dot net

This BC break is a problem with the symfony 2 framework.
All command throw this exception :

 [LogicException]                                                                                   
                                
  In the constructor of Symfony\Component\Finder\SplFileInfo, parent::__construct() must be called
and its exceptions cannot be cleared

------------------------------------------------------------------------
[2011-07-28 08:44:49] pajoye@php.net

Thing is that it is a bc break, whether it was well designed in the 1st place or 
not is sadly not relevant here.

Is there any way to restore this behavior without bc breaks?

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=55300


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=55300&edit=1


Thread (16 messages)

« previous php.bugs (#163262) next »