Re: [PATCH] allowing multiple namespaces per file plus namespaces with brackets
| From: | david dot coallier at nyphp dot com | Date: | Mon, 20 Aug 2007 20:06:24 +0000 |
| Subject: | Re: [PATCH] allowing multiple namespaces per file plus namespaces with brackets | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-31746@lists.php.net to get a copy of this message | ||
Thanks. someone please commit that as fast as posible so no one can say anything
;-)
On 8/20/07, Gregory Beaver <greg@chiaraquartet.net> wrote:
> Hi all,
>
> This patch is also available at
> http://pear.php.net/~greg/namespace.patch.txt
>
> The patch adds the syntax "namespace { *stuff }" and allows multiple
> namespaces per file with no performance penalty or added complexity as
> only 4 lines of code need to be changed, and 9 lines of code added to
> implement this support!
>
> Basically, there is one use case of multiple namespaces per file that
> the patch is designed to support, which is the ability to cram many
> files into a single file. I have done this for purposes of distributing
> things (prior to phar), it is used by some with phing tasks for
> performance reasons, and can have other uses as well.
>
> The patch provides the ability to do this, for example:
>
> <?php
> namespace One {
> require_once 'blah.php';
> class MyClass extends blah
> {
> function test()
> {
> echo "OK\n";
> }
> }
> function test()
> {
> echo "OK\n";
> }
> }
>
> namespace Two {
> class MyClass
> {
> function test()
> {
> echo "OK\n";
> }
> }
> function test()
> {
> echo "OK\n";
> }
> }
> ?>
>
> Note that the old format "namespace OneRingToRuleThemAll;" is still
> fully supported, and should be the recommended format, as build tools
> can easily take an entire file, change namespace .*; into namespace .*{
> and append <?php } ?> to the end of the file.
>
> The attached patch is against php6, but as you can see, a blind monkey
> could port it to PHP_5_3 when the time comes. All of the introduced
> changes are now tested, including the error message for nested namespace
> declarations, and the error message for multiple namespace declarations
> with ; (which was previously untested by .phpt tests)
>
> Thanks,
> Greg
>
--
David Coallier,
Founder & Software Architect,
Agora Production (http://agoraproduction.com)
51.42.06.70.18