Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:9404 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 35961 invoked by uid 1010); 19 Apr 2004 22:42:58 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 35701 invoked from network); 19 Apr 2004 22:42:57 -0000 Received: from unknown (HELO mail.mbobo.org) (213.133.123.182) by pb1.pair.com with SMTP; 19 Apr 2004 22:42:57 -0000 Received: from localhost (localhost [127.0.0.1]) by mail.mbobo.org (Postfix) with ESMTP id 29E1F57751A; Tue, 20 Apr 2004 00:42:57 +0200 (CEST) Received: from mail.mbobo.org ([127.0.0.1]) by localhost (debian [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 24418-08; Tue, 20 Apr 2004 00:42:56 +0200 (CEST) Received: from [10.200.1.52] (adsl-68-120-96-254.dsl.sntc01.pacbell.net [68.120.96.254]) by mail.mbobo.org (Postfix) with ESMTP id E754E577516; Tue, 20 Apr 2004 00:42:54 +0200 (CEST) In-Reply-To: <0EB7FB18-923B-11D8-8782-000393B2B3C0@omniti.com> References: <5.1.0.14.2.20040419112627.03efaa00@localhost> <5.1.0.14.2.20040419130523.04e3fe60@localhost> <101121849562.20040419204933@marcus-boerger.de> <0EB7FB18-923B-11D8-8782-000393B2B3C0@omniti.com> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-ID: Content-Transfer-Encoding: 7bit Cc: Marcus Boerger , Zeev Suraski , Andi Gutmans , internals@lists.php.net Date: Mon, 19 Apr 2004 15:42:51 -0700 To: George Schlossnagle X-Mailer: Apple Mail (2.613) X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) at mbobo.org Subject: Re: [PHP-DEV] Interface inheritance From: sterling@php.net (Sterling Hughes) mo compile errors mo better. +1. -Sterling On Apr 19, 2004, at 12:52 PM, George Schlossnagle wrote: > > On Apr 19, 2004, at 2:49 PM, Marcus Boerger wrote: > >> Hello Zeev, >> >> Monday, April 19, 2004, 12:14:40 PM, you wrote: >> >>> At 13:04 19/04/2004, Andi Gutmans wrote: >>>> Hey, >>>> >>>> I just wanted to note the fact that I disagree with this. >>>> In a perfect world, I would go with an E_COMPILE_ERROR in all >>>> situations; >>>> when inheriting regular classes (w/o abstract methods), abstract >>>> methods >>>> and interfaces. That is what the academic part of me feels but >>>> knows can't >>>> be done. >>>> As this would break BC too much, I agree that inheriting from >>>> regular >>>> classes should not lead to an error. I believe that for consistency >>>> sake >>>> interfaces and abstract classes should behave the same as regular >>>> classes, >>>> thus, if regular classes don't cause an error, the former also >>>> shouldn't. >> >>> Just to clarify a bit on why I think that we should differentiate: >>> 1. First of all, I agree that in a perfect world we should go with >>> E_COMPILE_ERROR for everything. Maybe now that's constructors are >>> out of >>> the picture, people will be more receptive to the idea - if we can >>> go down >>> that route, that option clearly gets my vote. > > +1 > >>> 2. If going for E_COMPILE_ERROR in all situations is not an option, >>> then I >>> do see a significant difference between interface/abstract methods, >>> and >>> real methods, when it comes to inheriting from them. The whole >>> interface/abstract/class type hints mechanism was added for the sole >>> reason >>> of enforcing prototypes, and effectively, it is pretty much useless >>> the way >>> things are now. >> >> repeat useless. > > yep. > >>> To make it clear, my vote still goes for option #1, if people feel >>> better >>> about it now... >> >> fellBetter++ > > I also think this is the way to go. > > George > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php >