Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:20267 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 46962 invoked by uid 1010); 23 Nov 2005 16:32:52 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 46946 invoked from network); 23 Nov 2005 16:32:52 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 23 Nov 2005 16:32:52 -0000 X-Host-Fingerprint: 195.226.9.186 unknown Received: from ([195.226.9.186:1819] helo=localhost.localdomain) by pb1.pair.com (ecelerity 2.0 beta r(6323M)) with SMTP id 46/17-11378-3B994834 for ; Wed, 23 Nov 2005 11:32:51 -0500 To: internals@lists.php.net,Jochem Maas Message-ID: <438499A8.7030900@cschneid.com> Date: Wed, 23 Nov 2005 17:32:40 +0100 User-Agent: Mozilla Thunderbird 1.0.6 (X11/20050715) X-Accept-Language: en-us, en MIME-Version: 1.0 References: <00A2E2156BEE8446A81C8881AE117F192C1C4E@companyweb> <43838433.3080404@lerdorf.com> <43849103.60307@iamjochem.com> In-Reply-To: <43849103.60307@iamjochem.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Posted-By: 195.226.9.186 Subject: Re: AW: AW: [PHP-DEV] PDM Meeting Notes From: cschneid@cschneid.com (Christian Schneider) Jochem Maas wrote: > so I can only assume that the ability to declare ctor signatures have > been left in because they do no harm regardless of whether it is > 'correct'. If I remember correctly then one reason to have constructor signatures is for object factories: You specify that an object to be created by a specific factory has to follow certain constructor rules. I see nothing wrong with that, it is part of a public interface of a class and hence one should be able to specify it in an interface. > abstract static protected function __construct(CrazySettings $s, > CrazyView $v); Abstract is purely redundant here as interfaces never implement a function. If on the other hand you mean that classes _implementing_ this interface have to declare those methods as abstract then I don't see how anyone could actually use this interface as no non-abstract class could implement these functions in the interface. Static doesn't really make sense as interfaces as object instance related. As far as protected and private go I have less strong of an opinion but I understand the point of view that interfaces describe the _public_ interface of an object, everything else are implementation details. - Chris