我见过这个代码块的例子和其他没有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;
添加了:
给出答案,是吗? 这样做好事吗?在那儿 开销或任何不好的事情 关于它,或者这是标准 练?
答案 0 :(得分:2)
它将使指定的自动加载器用于任何未命名空间的命名空间和类,如果没有定义该命名空间的自动加载器,则会有效地忽略“namespace”参数。
当您拥有不属于命名空间的类时,或者您需要在许多不同的命名空间中使用类时,使用$autoloader->setFallbackAutoloader(true)
是合适的。
答案 1 :(得分:2)
对于标准结构自动加载器不够用的情况,第二行是一种解决方法,应该避免,因为它会减慢速度(即使有时它非常方便)。
看起来后备自动加载器在ZF 2.0中不可用。
答案 2 :(得分:1)
第一行是微不足道的,手册中提到了第二行:这意味着,Zend Autoloader将尝试(自动)加载每个类,而不仅仅是作为前缀提到的类,或者注册的Autoloader。
答案 3 :(得分:1)
首先是获取自动加载器的实例,就是这样。由于自动加载器是单例,因此它只能有一个实例。如果该实例尚不存在,则会创建它。
第二行是让自动加载器充当全部捕获 - 只要找不到某些内容,就会触发自动加载器。