> Von: Steph Fox [mailto:[EMAIL PROTECTED]
> Gesendet: Mittwoch, 5. Dezember 2007 02:34

> import nstest::test as whatever;
> 
> This works in the global space, right? Now along comes, say, Pierre or
> Derick or Marcus with this class they just have to add to an existing
> (non-namespaced) core extension, and the obvious and perfect name for
> this
> class happens to be 'whatever'. I upgrade PHP and suddenly I start
> seeing
> 
> Fatal error: Import name 'whatever' conflicts with defined class in ...

Indeed it's pretty pointless if future additions to the core break 
(namespace-aware) code that previously worked.

I am probably alone with that point of view, but: Given that it was technically 
feasible, (future) core classes should be in namespaces as well.

The whole namespace thing depends on that everybody (users, library providers 
and the core) collaborates and puts "their" stuff in "their" namespace so that 
everyone can decide in "their" file which classes are needed.

Global namespace is precious, so let the user decide which classes to have 
there.

For the same reason, supporting "use Library::*" is a bad idea because that 
might break working code the same way as above if the Library introduces a new 
class.

-mp.

Reply via email to