Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:33962 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 99829 invoked by uid 1010); 12 Dec 2007 09:09:52 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 99814 invoked from network); 12 Dec 2007 09:09:52 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 12 Dec 2007 09:09:52 -0000 Authentication-Results: pb1.pair.com smtp.mail=jani.taskinen@sci.fi; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=jani.taskinen@sci.fi; sender-id=unknown Received-SPF: error (pb1.pair.com: domain sci.fi from 63.208.196.178 cause and error) X-PHP-List-Original-Sender: jani.taskinen@sci.fi X-Host-Fingerprint: 63.208.196.178 mho-01-bos.mailhop.org Received: from [63.208.196.178] ([63.208.196.178:57779] helo=mho-01-bos.mailhop.org) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 50/85-38526-E55AF574 for ; Wed, 12 Dec 2007 04:09:50 -0500 Received: from [81.22.163.71] (helo=[10.6.109.159]) by mho-01-bos.mailhop.org with esmtpsa (SSLv3:RC4-MD5:128) (Exim 4.68) (envelope-from ) id 1J2Nb9-000BYV-Ak; Wed, 12 Dec 2007 09:09:47 +0000 X-Mail-Handler: MailHop Outbound by DynDNS X-Originating-IP: 81.22.163.71 X-Report-Abuse-To: abuse@dyndns.com (see http://www.mailhop.org/outbound/abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX18Pf/XHoq9FYZ9qovNw/tJ23idUecDyqT0= Reply-To: jani.taskinen@iki.fi To: Gregory Beaver Cc: internals Mailing List , group@php.net In-Reply-To: <475F1984.603@chiaraquartet.net> References: <475F1984.603@chiaraquartet.net> Content-Type: text/plain Date: Wed, 12 Dec 2007 11:09:41 +0200 Message-ID: <1197450581.27917.2.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.8.3 (2.8.3-2.fc6) Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] namespace improvements to be committed very soon - final review From: jani.taskinen@sci.fi (Jani Taskinen) Nice to hear some work is done but I get very annoyed every time I see the words "behind the scenes" (or something alike). I guess it was because it's impossible to discuss anything on internals without the noise coming from "outside"..? Could we finally make this list read-only for every one but the @php.net people? I get enough spam already, spam from this list is not something everyone should suffer from. --Jani On Tue, 2007-12-11 at 17:13 -0600, Gregory Beaver wrote: > Hi, > > I've been furiously working behind the scenes with Stas and Dmitry, and > have some enhancements to namespaces in the form of 2 patches. > > 1) multiple namespaces per file > 2) use ::name; > > 1) multiple namespaces per file > > This is implemented as such: > > namespace one; > use Blah::A; > // code > namespace two; > use Foo::A; > ?> > > The example above shows that imported names are reset at each namespace > declaration. There is no prohibition on this code: > > namespace one; { > use Blah::A; > // code > } > namespace two; { > use Foo::A; > // code > } > ?> > > Users who wish to use brackets may do so. The performance penalty > imposed by using brackets is minor for some cases, and for users who are > following the recommended practice of 1 namespace per file, the syntax > is ideal. > > Patch is: > > http://pear.php.net/~greg/namespace/PHP_5_3/multi.patch.txt > http://pear.php.net/~greg/namespace/PHP_6_0/multi.patch.txt > > Note that non-namespaced code cannot be present in a file containing > namespaces. For users who are bundling, this will mean you will need to > create 2 files, one with non-namespaced code, and one with namespaced > code. This minor prohibition is a design decision, not a technical > problem in the implementation. > > 2) use ::name > > This code: > > namespace Whatever; > use MDB2; // import PEAR's ::MDB2 from global scope > $a = MDB2::connect(); > ?> > > is currently impossible, which will make namespacing old code harder. > The patch introduces this new syntax to import names from the global > namespace: > > use ::MDB2, ::strlen as len; > ?> > > http://pear.php.net/~greg/namespace/PHP_5_3/use.patch.txt > http://pear.php.net/~greg/namespace/PHP_6_0/use.patch.txt > > These patches are for review of both serious technical and serious > implementation issues. In order to help move things along, I'd like to > define "serious" as something directly related to the implementation > that would cause a failure in PHP's ability to run scripts > deterministically, or some kind of memory leak/crash. > > commit is planned for the next 24 hours or so, but of course any issues > found in review can be fixed. The patches are short, so in the worst > case, reverting is not difficult. > > Thanks, > Greg > -- Patches/Donations: http://pecl.php.net/~jani/