PHP:在我自己的MVC框架中包含文件?

时间:2010-11-17 14:30:18

标签: php codeigniter model-view-controller include

我刚刚开始构建我自己的MVC框架。感觉很高兴从头开始了解所有内容,只获得我的应用程序真正需要的东西。

我来自一个codeIgniter背景,它帮助我进入了MVC的视角。在codeigniter中,要包含文件,请使用codeIgniters very own load class

此加载类在加载文件时会检查以前是否包含过文件,如果不包含该文件,则会确保文件不包含两次。

然而,这种包含文件的方法有一个缺点,就是不可能(?)在我的文件上运行测试或利用我需要的IDE中的PHPdoc。

显然,我可以使用正常的include& PHP中的require函数在我的应用程序中向前和向后转发,其中需要某个库,但显然不太可能包含两次相同的文件...

那么 - 在我自己的PHP5 MVC框架中使用什么是一个很好的解决方案来包含文件?

4 个答案:

答案 0 :(得分:2)

只需使用include_oncerequire_once即可。 CI具有负载等级,您无需使用它。

答案 1 :(得分:2)

我正在做类似的事情,我正在使用autoload

把它放在index.php中:

function __autoload($class_name) {
    include $class_name . '.php';
}

或包含检查多个目录所需的任何逻辑。

编辑:这是用于检查备用路径的我(稍微片段)的代码。如果你需要检查多条路径,它可以更干净地完成。

function __autoload($class_name) {
  $path = INC_PATH . strtolower($class_name) . '.php';

  if (!file_exists($path)) {
    $path = MODELS_PATH . strtolower($class_name) . '.php';
  }

  require $path;
}

答案 2 :(得分:2)

使用include_once / require_once,但最好的解决方案是使用自动加载器

http://php.net/manual/de/language.oop5.autoload.php

你使用什么IDE?

答案 3 :(得分:1)

一般来说,php有内置include_once,正如名称所示,包含文件,但只有一次。

或者您可以使用大多数IDE支持的autoloading(虽然有些需要一些提示 - 取决于您使用的IDE)。