【问题标题】:Why these 2 lines in Zend Bootstrap autoloading function为什么 Zend Bootstrap 自动加载功能中有这两行
【发布时间】:2010-12-09 23:04:07
【问题描述】:

我见过包含此代码块的示例和其他没有注释 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;

添加:

给出答案,是 这样做是好事吗?在那儿 开销或任何不好的东西 关于它,或者这是标准 练习?

【问题讨论】:

    标签: php zend-framework zend-autoloader


    【解决方案1】:

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

    后备自动加载器似乎在 ZF 2.0 中不可用。

    【讨论】:

    • 那么ZF2什么时候发布?
    【解决方案2】:

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

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

    【讨论】:

    • jblue:更新了我对您的第二个问题的回答。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      • 这是否正确取决于您的方法。需要就用,不需要就不用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 2021-07-24
      相关资源
      最近更新 更多