Rob has very nicely broken down the use cases pretty much exactly as I see them as well.

Rob Allen wrote:
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.

Good to see movement on this issue :)


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).

I don't understand the "real performance hit". Could you elaborate?


I'd also be interested to see use-cases that show people having to
require_once() "over and over again" too. With autoload you just need to:
        require('Zend/Loader.php');
        spl_autoload_register(array('Zend_Loader', 'loadClass'));

If you don't want to autoload, then you care about performance to such a
degree that you probably only want to require the exact classes you need
when you need them and will manage that accordingly.


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();
}

I don't see the registry as core functionality unless another component
relies on it?

Also we already have a Zend/Registry.php containing Zend_Registry. If a
static interface is required for the registry, then we may as well just
add it to the current class.


class Zend_Loader {
  static public function loadClass($class, $dirs = null);
  static public function loadFile($filename, $dirs = null, $once = false);
  static public function isReadable($filename);
}

I can see the argument that this is core as other components rely on it.


class Zend_Framework {
    static public function compareVersion($version)
    const VERSION = '0.8.0dev';
}


I can see the argument for the VERSION const. I'm not 100% sure that
it's core, but can live with it.

I don't think Zend_Framework is a good class name though. Zend_Version
or Zend_FrameworkVersion would at least stop me thinking the class was
actually a Framework in itself. I'm easy on this though.

class Zend_Exception { ... }

Not core. It's not in Zend.php at the moment and seems to load itself
when needed.


// 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)
}

Definitely not core. This will limit our ability to put in a more "fully
featured" Zend/Debug.php at a later date. Better to do that now and put
this class in its own file.


Regards,

Rob...

Reply via email to