First of all it's not only performance. I also mentioned ease-of-use and simplicity. Not requiring to require_once() few files (which is one reason we did Zend:: to begin with). Second, Zend_Exception is not lazy loaded, Zend_Registry is used all the time, Third, with a byte code cache it won't matter. The overhead is per-file not really per-class.
Andi > -----Original Message----- > From: Christopher Thompson [mailto:[EMAIL PROTECTED] > Sent: Tuesday, February 27, 2007 9:56 PM > Cc: fw-general@lists.zend.com > Subject: Re: [fw-general] Request for feedback: moving > Zend.php to Zend/Zend.php > > The only real reason given for Zend/Core.php containing four > classes is for performance, but I think it will actually have > the opposite effect. > The only class really used in the framework is Zend_Loader. > Exceptions are lazy loaded, the Registry is a userland thing, > and the Zend_Framework class is only informational. All that > is minimally needed is Zend_Loader, so with Zend/Core.php you > are actually loading a bunch of possibly unused code every request. > > > Andi Gutmans wrote: > > Hi Ralf and all, > > > > Bill and I spent some time reviewing all the proposals and also > > brainstorming on what we think is right for Zend Framework. Our > > suggestion is very close to what Ralf is suggesting but with a few > > minor tweaks. > > > > We still believe having all the core functionality in one file is > > beneficial. While we want to keep the framework as loosely > coupled as > > possible there are some key APIs which are pretty much used > > universally throughout the framework. Breaking them each out into > > separate classes and files would probably lead to a real > performance > > hit and would require people to require_once() all those components > > over and over again (which would also be a PITA). > > We therefore suggest that these key classes (previously known as > > Zend::) all are put in the Zend/Core.php file. > > This would not only retain good performance but it would > also fit the > > simplicity goal and make it easy for people to get all the > necessary > > infrastructure. Also, we think it'd make sense to stick > Zend_Exception > > there too as it also falls into the category of a class > which is used > > everywhere. To be clear: We are not suggesting a file which > is bloated > > by lots and lots of classes which aren't necessarily used. > We want to > > keep it lean-and-mean but with the stuff that really matters. > > > > So the following is what it'd look like (pretty much in the > spirit of > > what Ralf proposed): > > > > library/Zend/Core.php: > > ---------------------- > > > > class Zend_Registry { > > static public function register($index, $newval) null); > > static public function registry($index = null); > > static public function isRegistered($index); > > static public function initRegistry($registry = > 'Zend_Registry'); > > static public function __unsetRegistry(); } > > > > class Zend_Loader { > > static public function loadClass($class, $dirs = null); > > static public function loadFile($filename, $dirs = > null, $once = > > false); > > static public function isReadable($filename); } > > > > class Zend_Framework { > > static public function compareVersion($version) > > const VERSION = '0.8.0dev'; > > } > > > > class Zend_Exception { ... } > > > > > > // Could live with the following outside of Core.php but > it's so small > > it really isn't a big deal to keep it for convenience class > Zend_Debug > > { > > static public function dump($var, $label=null, $echo=true) } > > > > We have two weeks to finalize this and make all the changes > (shouldn't > > be too hard as it can be done with a script). We don't want > to change > > any APIs anymore once 0.9 is shipped but only focus on bug > fixes, and > > improving documentation and unit tests. > > > > Andi > > > >> -----Original Message----- > >> From: Ralf Eggert [mailto:[EMAIL PROTECTED] > >> Sent: Monday, February 26, 2007 1:58 AM > >> To: fw-general@lists.zend.com > >> Subject: Re: [fw-general] Request for feedback: moving Zend.php to > >> Zend/Zend.php > >> > >> Hi, > >> > >> I personally think that the proposed renaming of the Zend class to > >> Zend_Framework is very misleading. I would expect that a > >> Zend_Framework class will set up the whole framework and > not be just > >> a funny conglomeration of methods who did not find their way to a > >> proper component. > >> > >> Here are my suggestions: > >> > >> - move Zend::register(), Zend::registry(), Zend::isRegistered(), > >> Zend::initRegistry() and Zend::__unsetRegistry() to Zend_Registry > >> > >> - drop Zend::exception() and Zend::loadInterface() > >> > >> - move Zend::loadClass(), Zend::loadFile() and > Zend::isReadable() to > >> a new Zend_Loader class > >> > >> - as suggested by others, move Zend::dump() to Zend_Debug > >> > >> - the only method I am not sure about yet is > >> Zend::compareVersion() but > >> I bet we will find a solution for this as well > >> > >> Like others I would also suggest to implement these changes before > >> the 0.9.0 beta release gets launched. > >> > >> Best Regards, > >> > >> Ralf > >> > >> > > >