Re: Interface inheritance
| From: | Hans Lellelid | 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. ZeevI 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