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

From: Date: Wed, 14 Sep 2011 15:38:41 +0000
Subject: Bug #55300 [Asn]: \DirectoryIterator, parent::__construct() and \LogicException
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-163546@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
 User updated by:    frederic dot hardy at mageekbox dot net
 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:

\Phar has the same problem, because this class extends \recursiveDirectoryIterator.
And stream wrapper can not be used with it because "Phar objects can only be created from local
files".


Previous Comments:
------------------------------------------------------------------------
[2011-09-02 20:03:27] krossekrabbe at gmail dot com

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.

------------------------------------------------------------------------
[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

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


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 (#163546) next »