如何在多个目录php页面

时间:2017-05-19 18:33:37

标签: php directory-structure

我的项目有以下目录结构,其中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';
});

我的目录结构如下

Directory Structure

我想将这个单个文件(core/Init.php)包含在我的所有文件,目录和views文件夹的子目录中。任何人都知道我该怎么做。

谢谢!

2 个答案:

答案 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 /目录开始。从那时起,您可以开始设置您希望包含的所有路径。相对或绝对。

亲切的问候