Elizabeth M Smith wrote:
<snip>
This can be solved in three ways.
1. Greg's "leaf" solution
foo::bar->baz(); - namespace foo::bar, function baz
foo->bar::baz(); - namespace foo, static method bar::baz
Personally I don't like this, get confusing even if we pick some weird
operator like :>
2. Don't allow functions or constants in namespaces
Simplest solution but appears to piss off all the people who have never
actually used the current implementation or hate OO on principle
3. Steph's idea - Change the separator (I vote ':::' - easy to do,
similar to what we have already)
foo:::bar:::baz(); - namespace foo:::bar function baz
foo:::bar::baz(); - namespace foo, static method bar::baz
Honestly, either the tough choices must be made soon or namespaces has
to be held until 6. IMO
From my experience using namespaces #1 AND #2 would make namespaces
solid (again IMO). The only thing for #1 is that I wouldn't want to see
-> reused, as others have mentioned. Maybe :> or something else. Same
for #3, :: just causes confusion. I don't really care what it's changed
to, ::: is fine, it just cannot be ::
Take a look at what autoload gets when an undeclared namespace, class,
whatever is called. That will give you the idea on how autoload doesn't
really know what is being called. With the change in #3 and addition of
#1, it would be possible to know what is being called.
<rant>
Seriously, why is changing :: seem like such a problem?
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php