Zend framework2 ClassMapAutoLoader和onBootstrap之间有什么不同?

Zend framework2 ClassMapAutoLoader和onBootstrap之间有什么不同?,zend-framework2,Zend Framework2,classmapaautoloader和onBootstrap之间有什么区别?classmapaautoloader web应用程序由许多PHP类组成,每个类通常驻留在单独的文件中。这就需要包含这些文件 随着应用程序规模的增长,可能很难包括 每个需要的文件。Zend Framework 2本身由数百个文件组成, 而且要加载整个库及其所有的 用这种方式。此外,在执行生成的代码时,PHP解释器将 花CPU时间来处理每个包含的文件,即使您没有创建 其类的实例 为了解决这个问题,在PHP5.1中引入了类

classmapaautoloader
onBootstrap
之间有什么区别?

classmapaautoloader web应用程序由许多PHP类组成,每个类通常驻留在单独的文件中。这就需要包含这些文件

随着应用程序规模的增长,可能很难包括 每个需要的文件。Zend Framework 2本身由数百个文件组成, 而且要加载整个库及其所有的 用这种方式。此外,在执行生成的代码时,PHP解释器将 花CPU时间来处理每个包含的文件,即使您没有创建 其类的实例

为了解决这个问题,在PHP5.1中引入了类自动加载功能。 PHP函数
spl\u autoload\u register()
允许您注册 自动加载器功能。对于复杂的网站,您甚至可以创建 几个自动加载函数,链接在堆栈中

在脚本执行期间,如果PHP解释器遇到类名 它调用所有已注册的自动加载函数 反过来,直到autoloader函数包含该类或出现“未找到”错误 提高。这允许在PHP解释器处理类时进行“延迟”加载 仅在类调用时定义,即真正需要时

为了让您了解自动加载器功能的外观,下面我们提供 自动加载器功能的简化实现:

<?php
// Autoloader function.
function autoloadFunc($className) {

  // Class map static array.
  static $classMap = array(
    'Zend\\Mvc\\Application' => '/path/to/zend/dir/Zend/Mvc/Application.php',
    'Application\\Module' => '/path/to/app/dir/Application/Module.php',
    //...
  );

  // Check if such a class name presents in the class map.
  if(isset(static::$classMap[$className])) {
    $fileName = static::$classMap[$className];

    // Check if file exists and is readable.
    if (is_readable($filename)) {
      // Include the file.
      require $filename;
    }
  }
}

// Register our autoloader function.
spl_autoload_register("autoloadFunc");

你可能想提到你写了你推荐的电子书,正如自我推销部分所说:是的,你是对的。我可能应该把书单给他,这样他就可以自己选择了。