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
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php