我的项目有以下目录结构,其中Init.php
文件夹下有core
个文件。我想在views
文件夹下的每个页面上包含此文件,以自动加载classes
文件夹下定义的所有类。但是当我从require_once '../../core/Init.php';
文件夹的子目录中包含views
时,它会给我以下错误
require_once(classes / Config.php):无法打开流:
中没有此类文件或目录
在views
文件夹
require_once 'core/Init.php';
芯/的init.php
spl_autoload_register(function($class) {
require_once 'classes/' . $class . '.php';
});
我的目录结构如下
我想将这个单个文件(core/Init.php
)包含在我的所有文件,目录和views文件夹的子目录中。任何人都知道我该怎么做。
谢谢!
答案 0 :(得分:0)
问题的根源在于您的代码实际上是从多个目录执行的。
相反,它应该通过单个入口点调用(通常称为" bootstrap文件")。
基本上,你做的就是这样。
$config = require __DIR__ '/../config.php';
$page = $_GET['page'] ?? 'home';
if (in_array($page, $whitelist)) {
require __DIR__ . "/path/to/pages/{$page}.php";
}
哦,并且不要将您的模板称为"观看"。他们不是。
答案 1 :(得分:0)
结构!启动应用程序时告诉它在哪里找到东西然后添加spl_autoload_register函数并设置始终可访问的东西:
.../www/index.php
eg (in index.php):
chdir(__DIR__):
现在每件事都从... / www /目录开始。从那时起,您可以开始设置您希望包含的所有路径。相对或绝对。
亲切的问候