2

我见过有这个代码块的例子和其他没有两行注释的例子可能不是。这两条线的目的到底是什么?

$moduleLoader = new Zend_Application_Module_Autoloader(array(
    'namespace' => '',
    'basePath' => APPLICATION_PATH)
);


$autoloader = Zend_Loader_Autoloader::getInstance(); //MAYBE NOT
$autoloader->setFallbackAutoloader(true);      //MAYBE NOT

return $moduleLoader;

添加:

给出答案,这样做是好事吗?是否有开销或任何不好的地方,或者这是标准做法?

4

4 回答 4

2

它将导致指定的自动加载器用于任何没有命名空间的命名空间和类,如果没有为该命名空间定义自动加载器,则有效地忽略“命名空间”参数。

$autoloader->setFallbackAutoloader(true)当您有不属于命名空间的类,或者您需要跨许多不同的命名空间使用类时,使用它是合适的。

于 2010-12-09T23:13:21.297 回答
2

第二行是标准结构自动加载器不够用的情况下的一种解决方法,应该避免,因为它会减慢速度(即使有时它非常方便)。

看起来后备自动加载器在 ZF 2.0 中将不可用。

于 2010-12-10T18:22:49.013 回答
1

第一行很简单,手册中提到了第二行:这意味着 Zend Autoloader 将尝试(自动)加载每个类,而不仅仅是作为前缀提到的类或注册的 Autoloader。

于 2010-12-09T23:09:18.527 回答
1

首先是获取自动加载器的实例,就是这样。由于自动加载器是单例的,它只能有一个实例。如果该实例尚不存在,则会创建它。

第二行是让自动加载器充当一个包罗万象的功能 - 每当找不到任何东西时,就会触发自动加载器。

于 2010-12-09T23:09:30.093 回答