> Thats awesome.
> By the way, what is "it"?
> I haven't had the chance of following the hundreds of namespaces
> threads with thousands of replies. All I have gather so far is a
> massive amount of FUD.
> 
> Could someone summarize what you are trying to convince Greg to agree
> on? I would greatly appreciate if that post would not get +100 replies
> under an hour.
> 
> 
> -Hannes

Have to agree on the FUD thing - how many people commenting on this
thread have actually tried the current namespaces implementation for
themselves?  Or are they simply parroting what they've read or what
others have said?  Maybe a prerequisite for any kind of vote should
include actual code written using namespaces.

And yes, I have some sitting around in public svn ;)  But I'm not crass
enough to spam the list with the url, email me privately if you want to
see it.

I use to have many issues with namespaces - compromises and good code
have knocked off most of the problems and I'm almost happy.

I really only have one issue left with namespaces.  This remaining issue
is of course the "is it a method or is a function" problem

foo::bar::baz(); - is this calling function baz in namespace foo::bar?
or is it calling static method bar::baz in namespace foo?

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

I like this too, minus the headache of arguing over the namespace
separator (again) - in a perfect world this would be a single colon, but
the ternary issues (people write stupid code, so we have to cater to
them) strikes again.

$foo = $myvar ? foo:bar:hello; - craziness, although personally I'd say
"always take the last :" for issues like this and document the hell out
of it...

$foo = $myvar ? (foo:bar):hello; or $foo = $myvar ? foo:(bar:hello);
should give you the right thing...

But I digress.  I know a lot of people are simply filtering out the
namespace "noise" or are "voting on gut reactions" - "OMG the people who
write the code are arguing, it must totally suck" ...

Write some code using the current namespaces implementation.  Functional
and OO.  Then decide, don't listen to people bitching or wait for
someone else to summarize issues they've found.  People not trying it
are how we got into this mess in the first place.

Thanks,
Elizabeth Smith

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

Reply via email to