Re: Inconsistencies with constructors in SPL

From: Date: Mon, 16 May 2011 18:32:00 +0000
Subject: Re: Inconsistencies with constructors in SPL
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-52401@lists.php.net to get a copy of this message
Hi, I|d actuallz suggest a different option: If a parent constructor is called but doesn't exist the engine should ignore this. The same goes for destructors. This solution would also work for userland classes. johannes On Mon, 2011-05-16 at 14:14 -0400, Andrew Curioso wrote: > So, I ran across bug #54631 > > A fatal error is thrown if you try to call parent::__construct() from a > subclass > of SplObjectStorage. > > I was going to close it as "expected behavior" since that is pretty normal > if the parent class doesn't implement __construct(). > Also, the docs don't list it as having a __construct() method. > > But then look at SplDoublyLinkedList (and a bunch of others). They are > documented > as having a __construct() method, yet it triggers a fatal error when you try > to call > "parent::__construct()" from a subclass' constructor . > > So it seems to me that there are two possible solutions: > > - Update the docs to remove ::__construct() for classes that don't have one. > - Make sure __construct() is implemented in all SPL classes * and update the > docs. > > * Even if it is empty. > > What's everyone thinking? > > I'd be more than happy to add the constructors to the code where needed, I > just > want to make sure that it is the right move first. > > > - Andrew

« previous php.internals (#52401) next »