php和自己的框架如何在后台运行?

时间:2010-04-27 00:03:21

标签: php frameworks

我是网络编程新手。我在桌面上的c#.net平台上表现很好。我试图理解php和php框架,但我有点困惑。据我所知,php文件可以将文件中的类导入到另一个带有require_once函数的php文件中。但框架并没有使用require_once函数导入自己的类。我认为他们做了一些我不理解的事情。有人可以向我解释一下吗?

1 个答案:

答案 0 :(得分:2)

大多数框架使用称为“自动加载”的技术来自动解析并包含所需的依赖项。

“Autoloader”只是一个在引用未知类时由PHP调用的函数。 “Autoloader”可以在程序上创建类,或者只根据文件名从外部文件include创建它。

当前(PHP 5.1.2及更高版本)这样做的正确方法是使用spl_autoload_register()。以下是自动加载器的示例:

function autoload_example($className) {
  $normalizedName = strtolower($className);

  if(file_exists('includes/' . $normalizedName . '.inc')) {
    require_once('includes/' . $normalizedName . '.inc');
  } elseif(file_exists('includes/' . $normalizedName . '.inc')) {
    require_once('includes/' . $normalizedName . '.php');
  } else {
    die('Class ' . $className . ' not found');
  }
}

spl_autoload_register('autoload_example');

$myAwesomeObject = new Awesome();

在上面的示例中,当PHP点击类autoload_example的引用时,PHP将运行“Autoloader”Awesome

“Autoloader”将首先尝试查找文件include/awesome.inc。如果它能找到它,它将包括它。

如果没有,它将查找名为include/awesome.php的文件。如果它能找到它,它将包括它。

如果没有,它会die()声明找不到我的Awesome课程。