在注册表模式中,我们只创建我们需要的对象,例如:
public function createAndStoreObject( $object, $key )
{
require_once( $object . '.class.php' );
$this->objects[ $key ] = new $object( $this );
}
然后通过它的密钥访问它。
在自动加载器中,我们执行以下操作:
<?php
class autoloader {
public static function moduleautoloader($class) {
$path = $_SERVER['DOCUMENT_ROOT'] . "/modules/{$class}.php";
if (is_readable($path)) {
require $path;
}
}
public static function daoautoloader($class) {
$path = $_SERVER['DOCUMENT_ROOT'] . "/dataobjects/{$class}.php";
if (is_readable($path))
require $path;
}
public static function includesautoloader($class) {
$path = $_SERVER['DOCUMENT_ROOT'] . "/includes/{$class}.php";
if (is_readable($path))
require $path;
}
}
spl_autoload_register('autoloader::includesautoloader');
spl_autoload_register('autoloader::daoautoloader');
spl_autoload_register('autoloader::moduleautoloader');
?>
然后它的使用如下:
当我们要创建一个对象时,它应该通过包含、模块或数据对象文件夹来找到类,然后如果它存在,则应该创建对象。
对于一个巨大的应用程序,我们必须通过注册表方法还是在这里使用自动加载器有一些好处?