Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:41674 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 18734 invoked from network); 4 Nov 2008 23:33:26 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 4 Nov 2008 23:33:26 -0000 Authentication-Results: pb1.pair.com smtp.mail=mls@pooteeweet.org; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=mls@pooteeweet.org; 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:52352] helo=bigtime.backendmedia.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F3/AB-15458-5CBD0194 for ; Tue, 04 Nov 2008 18:33:26 -0500 Received: from localhost (unknown [127.0.0.1]) by bigtime.backendmedia.com (Postfix) with ESMTP id 73D374144058; Tue, 4 Nov 2008 23:34:12 +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 1wvXaRDA2PFn; Wed, 5 Nov 2008 00:34:10 +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 B8B234144009; Wed, 5 Nov 2008 00:34:09 +0100 (CET) To: Marcus Boerger In-Reply-To: <1652368155.20081105001225@marcus-boerger.de> X-Priority: 3 (Normal) 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> Message-ID: <6246E5E0-BD11-48E2-B32B-DA7F82E605E2@pooteeweet.org> 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 00:32:19 +0100 Cc: Gregory Beaver , Christian Schneider , PHP Development 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 00:12, Marcus Boerger wrote: >> classes: >> 1) try ns::class >> 2) autoload ns::class >> 3) fail > > Since we can stack autoload we could provide a c-level autoload > function > that does the default lookup. > > function global_autoload($name) { > if (($p = strrpos($name, '\\')) !== false) { > $name = substr($name, $p); > if (__NAMESPACE__ == substr($name, 0, $p -1) && class_exists("\\ > $name")) { > use "\\$name"; // if we find a way to do this at C-levle > } > } > } just to make sure i understand this correctly .. you are suggesting here that we make it somehow possible in __autoload() to fallback to the global namespace. so that if someone wants the fallback to global namespace behavior for classes, he could get this by calling this standard autoload function (or rather by using the spl autoload stack - noting that spl may not be disabled anymore as of PHP 5.3). more specifically you want to enable use statements inside autoload. i presume that use statement would only be in effect for this single name resolution? as in the use statement would not have an affect on subsequent triggering of autoload, even when originating from the same file? regards, Lukas Kahwe Smith mls@pooteeweet.org