Let's say 15 interfaces (low count) and 15 classes using the
interfaces, you need to
require_once somefile in the interfaces sometimes as well. That's when
the problem occurs.. In order to optimize you'll go with putting all
the files in one require (furthermore some projects (like doctrine)
aggregate all the files into one, and cache this file in order to
remove the includes, etc and cache this file..)
Can't we simply say that Foo_Exception and Foo_Interface should go in some common class? I tend to think it's a bit of an overkill to have Foo/Exception.php, Foo/Interface.php and Foo/Common.php all included from Foo/Bar.php which extends Foo_Common.
Man, I tried hard to stay out of this thread.
--Joe