Stan Vassilev | FM wrote:

> <?php
> // global, scope 1
> 
> namespace { // global, scope 2 }
> 
> // global, scope 1
> 
> namespace { // global, scope 3 }
> 
> // global, scope 1
> 
> namespace foo\bar { // foo\bar, scope 4 }
> 
> // global, scope 1
> ?>

I am afraid I must shed my generally congenial public nature to express
a strong opinion:

This is a horribly complex idea Stan.  PHP's implementation of
namespaces do not define scope.  Once we open that Pandora's box, there
is no turning back.

Big time -1 from me.

Remember, the patch I'm proposing would only be necessary for people
using un-namespaced code combined with namespaced code (already a bad
idea) *and* scattering "use" statements throughout the global code.

Also, the *only* supported use case behind allowing multiple namespaces
per file is to allow people to mash pre-existing separate PHP files
together, and have them still compile.  Requiring brackets is designed
to make it more readable, and the "use" restriction furthers that goal.

I would have implemented this requiring all code to be encased in
namespace {} or namespace nsname {}, but that turned out to be virtually
impossible in the parser because of the need to also allow "declare"
statements outside namespace declarations

Thanks,
Greg

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to