Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:在我自己的MVC框架中包含文件?_Php_Codeigniter_Model View Controller_Include - Fatal编程技术网

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

PHP:在我自己的MVC框架中包含文件?,php,codeigniter,model-view-controller,include,Php,Codeigniter,Model View Controller,Include,我刚刚开始构建自己的MVC框架。感觉很好,从一开始就知道一切,只得到我的应用程序真正需要的东西 我来自codeIgniter的背景,这有助于我进入MVC视角来看待事物。在codeigniter中,使用包含文件的方法 加载文件时,此加载类检查文件以前是否已包含,如果未包含,则检查该文件,从而确保文件不会包含两次 但是,这种包含文件的方法有一个缺点,就是无法在我的文件上运行测试,也无法利用我需要的IDE中的PHPdoc 显然,我可以在我的应用程序中前后使用PHP中的普通include&require

我刚刚开始构建自己的MVC框架。感觉很好,从一开始就知道一切,只得到我的应用程序真正需要的东西

我来自codeIgniter的背景,这有助于我进入MVC视角来看待事物。在codeigniter中,使用包含文件的方法

加载文件时,此加载类检查文件以前是否已包含,如果未包含,则检查该文件,从而确保文件不会包含两次

但是,这种包含文件的方法有一个缺点,就是无法在我的文件上运行测试,也无法利用我需要的IDE中的PHPdoc

显然,我可以在我的应用程序中前后使用PHP中的普通include&require函数,其中需要某个库,但显然不可能两次包含同一个文件


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

只需使用include\u一次,require\u一次。虽然CI有一个load类,但并不要求您使用它。

只需使用include\u一次和require\u一次即可。虽然CI有一个load类,但您绝对不需要使用它。

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

只需将其放在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;
}

我正在做一件和你相似的事情,我正在使用

只需将其放在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;
}

通常php有一个内置的include_,顾名思义,它只包含一次文件


或者您可以使用大多数IDE支持的,尽管有些IDE需要一些提示-这取决于您使用的IDE。

通常php有内置的include\u一次,顾名思义,它只包含一次文件


或者您可以使用大多数IDE支持的,尽管有些IDE需要一些提示-这取决于您使用的IDE。

使用include\u once/require\u once,但最好的解决方案是使用自动加载器


你使用什么IDE

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


你使用什么IDE

Eclipse PHP是我的IDE选择。Eclipse PHP是我的IDE选择。你想告诉我你处理多个目录的解决方案吗?你想告诉我你处理多个目录的解决方案吗?我有点担心在使用库时编写冗余代码来覆盖可能的依赖关系,在不同的控制器中…例如,在不同的控制器中使用库时,我有点担心编写冗余代码来覆盖可能的依赖关系。。。