PHP:在我自己的MVC框架中包含文件?
我刚刚开始构建自己的MVC框架。感觉很好,从一开始就知道一切,只得到我的应用程序真正需要的东西 我来自codeIgniter的背景,这有助于我进入MVC视角来看待事物。在codeigniter中,使用包含文件的方法 加载文件时,此加载类检查文件以前是否已包含,如果未包含,则检查该文件,从而确保文件不会包含两次 但是,这种包含文件的方法有一个缺点,就是无法在我的文件上运行测试,也无法利用我需要的IDE中的PHPdoc 显然,我可以在我的应用程序中前后使用PHP中的普通include&require函数,其中需要某个库,但显然不可能两次包含同一个文件PHP:在我自己的MVC框架中包含文件?,php,codeigniter,model-view-controller,include,Php,Codeigniter,Model View Controller,Include,我刚刚开始构建自己的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选择。你想告诉我你处理多个目录的解决方案吗?你想告诉我你处理多个目录的解决方案吗?我有点担心在使用库时编写冗余代码来覆盖可能的依赖关系,在不同的控制器中…例如,在不同的控制器中使用库时,我有点担心编写冗余代码来覆盖可能的依赖关系。。。