Re: Interface inheritance

From: Date: Tue, 20 Apr 2004 01:28:51 +0000
Subject: Re: Interface inheritance
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-9406@lists.php.net to get a copy of this message
Hi, Zeev Suraski wrote:
What I'm asking is that, short of enabling these checks for everything (as defined above) due to significant opposition, we should at least re-enable them for interface/abstract methods (this was the way things were for about half a year, until the previous discussion about this subject a couple of months back). That way we give true OO developers the ability to enforce prototypes, without breaking old code. Zeev
I wanted to chime in since I'm one of the people who was strongly against E_COMPILE_ERROR for *regular* class inheritance. I still feel strongly about that because it breaks tons of code out there. If PHP can't support method overloading, then I think it it needs to allow method *overriding* in order to meet the needs of userland developers like myself. However ... I definitely think that method signatures should be checked and enforced for interfaces and abstract classes. I think at one point, when faced with broken PHP5 code after an update to one of the late betas, I suggested allowing interfaces to override parent (i.e. other interface) methods to be consistent with classes. I can live (and am living) without this "feature", though. As a userland PHP5 developer, I vote a strong +1 for more strict interfaces. I was saddened to see those become impotent (i.e. E_STRICT) as a result of the last discussion (which I thought was simply an opposition to doing the E_COMPILE_ERROR accross the board w/ classes). Anyway, of course consistency also counts for something :) Hans

« previous php.internals (#9406) next »