Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:41108 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 64996 invoked from network); 16 Oct 2008 04:44:59 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 Oct 2008 04:44:59 -0000 Authentication-Results: pb1.pair.com smtp.mail=phpwnd@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=phpwnd@gmail.com; sender-id=pass; domainkeys=bad Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.198.237 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: phpwnd@gmail.com X-Host-Fingerprint: 209.85.198.237 rv-out-0506.google.com Received: from [209.85.198.237] ([209.85.198.237:52193] helo=rv-out-0506.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 8F/5D-33247-AC6C6F84 for ; Thu, 16 Oct 2008 00:44:59 -0400 Received: by rv-out-0506.google.com with SMTP id g37so3482591rvb.23 for ; Wed, 15 Oct 2008 21:44:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=doQLRl3wvpsac7t0v/9I87fG8m8/6EZL7rpWny7m8uw=; b=csBPkL9QMabsi1OwJu6++SPe6I48KMVfq9C6rEJIMBiMJ7AvhSZsApelhBp4DAbCx4 AKeL+cgOdIzTvhdGimjvwDW0xXJ4d8mcpVzcfxLyKtv/785MDWMVjDc9/3U10fD1jMSP gX3BuR2JZju4kMyRj8+z0K2h0/jann//9bRO0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=vRpp++WFgc+DgmArLT8sgAVOxU37X22x7O7P0J6Ujcc3J30fatRQ29rbQad6AjHKY0 35Uf672TwDBTa9YHs4i1fRLMSPQJzZY/9F/NNs++5FXbrytuhS6v/lYre9yPoit4eFdn GQR6/4+UKRDMbaJ8myer1Hna5Ao0z0R3yXPXk= Received: by 10.141.88.3 with SMTP id q3mr1257427rvl.94.1224132296294; Wed, 15 Oct 2008 21:44:56 -0700 (PDT) Received: by 10.141.83.21 with HTTP; Wed, 15 Oct 2008 21:44:56 -0700 (PDT) Message-ID: <11c607a60810152144o98ef78dr1876febd7a42193d@mail.gmail.com> Date: Thu, 16 Oct 2008 06:44:56 +0200 To: "Greg Beaver" Cc: "PHP Developers Mailing List" In-Reply-To: <48F653FF.5010106@chiaraquartet.net> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <48F653FF.5010106@chiaraquartet.net> Subject: Re: [PHP-DEV] my last attempt at sanity with namespaces From: phpwnd@gmail.com ("Josh Davis") 2008/10/15 Greg Beaver : > > Read it and discuss. Hello, First of all I'd like to thank Greg for his efforts to move the discussion in a positive direction. From a PHP user's point of view, it's comforting to see that this kind of discussion can still take place with a cool head and methodically. I have a question about #1 and #2: aren't they functionally the same? Based on current resolution rules (the ones used in the engine, not the ones currently documented in the manual) it is my understanding that there is only ever one namespace [resolution] operator and no namespace separator, because there is no hierarchy in namespaces. The "::" people use (myself included) to separate tokens in the namespace's name are for decoration only (a "visual aid", as per the old RFC) and they have no meaning. Therefore, users should be able to use any number of consecutive colons in a namespace name, before the namespace operator, just like we can use any number of consecutive underscores in class names and anywhere else. If the "::" contained in a namespace's name are separators, doesn't it mean that namespaces are de facto nested? Which brings me back to the current documentation, in which "new B::C" inside of namespace A would create an instance of class C from namespace A::B, as opposed to the current engine where it returns an instance of C from namespace B. I don't know if I'm reading too much into it, but as a user, the existence of "namespace separators" means to me that there multiple namespaces and that they are nested and it leads me to expect the old functionality (instance of A::B::C). Since that's not the case anymore, I wouldn't expect the number of consecutive ":" to be limited, making #1 and #2 the same. In fact, I wouldn't expect colons to be authorized in namespace names at all. Hoping I'm not opening a can of worms :) JD