let's look at this code:
<?php
namespace foo\classes;
class buh extends foo\stuff {}
?>
There are a few things to keep in mind. PHP has __autoload(), which C#
does not have. Thus, a solution such as:
1) try foo\classes\foo\stuff
2) try foo\stuff
Greg, this is clear. I am trying to point something different - to try
ONLY 2) and never try 1).
Why? I have developed framework using PHP namespaces and studied Zend
Framework source codes and result is: if we use the new resolution rules
(1), than in nearly all cases developers must prefix class names with \,
only in few cases prefix is not required. Why? Because usually classes
in more nested namespaces extends classes in less nested namespaces. If
you don't believe, look in framework sources :-)
So, resolution alá 1) is nearly in all cases pain and in few cases nice,
resolution alá 2) is nearly in all cases nice and in few cases not too nice.
Furthermore, resolution alá 1) means, that namespace named foo\stuff is
fiction - there is only namespace named \foo\stuff. Lets use \foo\stuff
everywhere:
namespace \foo\classes;
use \foo\stuff as stuff;
This is (at least) very ugly.
David
p.s. Save useless backslashes, save a peace :-)
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php