<kidding> If things behave like that at least there should be a list of "reserved class names" just like with other keywords. And of course that list must not be changed as it is considered practical. </kidding>Or
a) am I missing something
b) is it the core developers' opinion that core classes have
the right of way?
I don't think PEAR has done anything wrong here; it was never disallowed
to have a class named Date. And it's not only a PEAR problem but affects
pretty much everyone out there with more than a few hundred lines of OO
code. If it was a failure of QA, clearly one of the "language core" QA
itself.
Maybe namespaces are a solution, but until there is a good solution for
the basic problem, stop adding classes to the core that way. Often it's
hard enough to find short yet precise class names; and there is also a
set of commonly used or agreed-on class names (just think of the common
patterns). In no case anything done in the core must inflict with or
otherwise touch that set - or forget about that "enterprise ready" stuff
altogether.
-mp.