2008/6/26 Derick Rethans <[EMAIL PROTECTED]>:

> On Tue, 24 Jun 2008, Rasmus Lerdorf wrote:
>
> > Derick Rethans wrote:
> > > On Tue, 24 Jun 2008, Alexey Zakhlestin wrote:
> > >
> > > > it won't be a serious 'wtf', as on the top of the file, there
> > > > would be some kind of use MySuperLibrary::DateTime;
> > >
> > > I know, but 400 lines down in the code you can't really see that.
> > > This addition might fix the immediate issue - but it doesn't make
> > > life easier for the developers that have to maintain the code. Even
> > > less if they're not aware that stuff is namespaced.
> >
> > If we don't allow it to work this way, then I really don't see the
> > point in namespaces at all, which I assume is the point you are trying
> > to make.
>
> Actually, the point that I was trying to make is that we instead of
> encouraging this confusion, we should put somewhere in our userland
> nameing guidelines that you still would need to provide a prefix to your
> (aliased) classnames in order to prevent confusion. But that then
> seriously means I see no real good reason still why people want
> namespaces with confusing resolving rules (concerning static methods
> like Greg points out).
>
> regards,
> Derick
>
> --
> Derick Rethans
> http://derickrethans.nl | http://ezcomponents.org | http://xdebug.org
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
How bad would it be to say that namespacing can only apply to classes and
not normal functions?

So.

class::static();
namespace::class::static();
namespace::namespace::class::static();

they always work.


namespace::function() would fail as namespace would be seen as class.

If a class and a namespace share the same name ...

namespace::function() vs class:static()... how is anyone, let alone PHP,
going to know. It can't. If both forms relate to a valid entity, then it is
always a guess as to which is intended.

You could make namespace:: have a higher precedence than class:: (or the
other way around). But that feels like a fudge rather than a fix.


So, maybe, in the short tem, namespacing only applies to classes.

It was my understanding that one of the primary reasons for introducing
namespacing was to protect against userland_class vs builtin_class
collision.

Regards,

Richard Quadling.

-- 
-----
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"

Reply via email to