Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:41694 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 86570 invoked from network); 5 Nov 2008 20:36:36 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 5 Nov 2008 20:36:36 -0000 Authentication-Results: pb1.pair.com header.from=mls@pooteeweet.org; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=mls@pooteeweet.org; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain pooteeweet.org from 88.198.8.16 cause and error) X-PHP-List-Original-Sender: mls@pooteeweet.org X-Host-Fingerprint: 88.198.8.16 bigtime.backendmedia.com Linux 2.6 Received: from [88.198.8.16] ([88.198.8.16:59344] helo=bigtime.backendmedia.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 4C/F3-22938-3D302194 for ; Wed, 05 Nov 2008 15:36:36 -0500 Received: from localhost (unknown [127.0.0.1]) by bigtime.backendmedia.com (Postfix) with ESMTP id 558B84144058; Wed, 5 Nov 2008 20:37:27 +0000 (UTC) X-Virus-Scanned: amavisd-new at backendmedia.com Received: from bigtime.backendmedia.com ([127.0.0.1]) by localhost (bigtime.backendmedia.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tCRpTzCSMeh2; Wed, 5 Nov 2008 21:37:25 +0100 (CET) Received: from [192.168.0.151] (77-58-151-147.dclient.hispeed.ch [77.58.151.147]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: mls@pooteeweet.org) by bigtime.backendmedia.com (Postfix) with ESMTP id 39F664144009; Wed, 5 Nov 2008 21:37:23 +0100 (CET) Cc: Marcus Boerger , Gregory Beaver , Christian Schneider , PHP Development Message-ID: To: Stanislav Malyshev In-Reply-To: <491200FE.1000504@zend.com> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v929.2) Date: Wed, 5 Nov 2008 21:35:25 +0100 References: <49048EC1.9060908@chiaraquartet.net> <49061E01.8060503@zend.com> <11c607a60810271344i1a8cf53fl149447ad2f687f99@mail.gmail.com> <490628DB.9060209@zend.com> <11c607a60810271422l68949427pe31786275b0b152c@mail.gmail.com> <08747094-6B50-4A0D-9057-DFD12108B6C6@caedmon.net> <94CCB864-179A-48DA-A89A-3859796A9257@pooteeweet.org> <49063A1D.7070804@zend.com> <4906405F.7090205@zend.com> <490747B2.2010201@zend.com> <4D9A8597-EFE6-418A-B7F6-EAD9ED2361A5@pooteeweet.org> <7FA6946B-57B9-4BC0-B2F1-AFD47572F363@pooteeweet.org> <491071EC.7020501@cschneid.com> <49107527.7060604@chiaraquartet.net> <1652368155.20081105001225@marcus-boerger.de> <6246E5E0-BD11-48E2-B32B-DA7F82E605E2@pooteeweet.org> <885621138.20081105004925@marcus-boerger.de> <4910E33C.2070609@zend.com> <02297291-ADDF-4AA1-897C-607B93980A32@pooteeweet.org> <491200FE.1000504@zend.com> X-Mailer: Apple Mail (2.929.2) Subject: Re: [PHP-DEV] namespace separator and whining From: mls@pooteeweet.org (Lukas Kahwe Smith) On 05.11.2008, at 21:24, Stanislav Malyshev wrote: > Hi! > >> Well, its not like the person is getting Y when he is expecting X. >> Both classes have the same name after all, so there is some >> relation between > > They don't have the same name - two classes can't have the same > name. And "relation" is definitely not enough - you really do not ok, they have the same non fully qualified named. > want to get generic \Exception instead of \My\Very\Specific > \Exception - it would probably break all your error handling. this is about overloading and flexibility. >> these two classes. More importantly its the users choice to enable >> this in __autoload(). As all frameworks got that its the end users >> job to implement autoload, I would not worry soo much in this case. > > I do not see a need for autoload to substitute different classes > instead of ones that are requested. autoload has very specific > function - to load classes. To override it with tricks that > substitute one class for another is the runkit domain, and IMHO > should stay there. It would seriously complicate matters everywhere > (if you load the class, you can no longer be sure successful loading > have indeed loaded you the class you asked for!) and appears > completely unnecessary hack. the point was that this gives the end user the choice of when, if at all, to fallback to the global namespace. in this way the default could indeed be 1) ns 2) autoload 3) fail. just that autoload can now handle more cases in a manner the end users might deem sensible. i guess the other alternative (though actually i am not sure if its possible), that people will likely try out is to extend the base class inside the namespace on the fly. which i would consider much worse. this might or might not be a sensible compromise, but you would do us all a favor if you would stop killing off open thinking with useless metaphors about 85 year old ladies. thanks ... regards, Lukas Kahwe Smith mls@pooteeweet.org