项目基目录PHP

时间:2014-04-19 16:31:34

标签: php path directory project

我正在以这种方式组织一个项目:

public_html/
   index.php
   file1.php
   file2.php
   ...
   css/
      basic.css
   panel/
      file3.php
      ...
resources/
   classes/
      class1.php
      class2.php
      ...
   core/
      init.php
   includes/
      templates/
         header.php
         footer.php

以下是我在init.php文件中的部分内容:

spl_autoload_register(function ($class) {
    require_once '../resources/classes/' . $class . '.php';
}
);

在每个php文件中,我只需要init.php

<?php

require_once '../resources/core/init.php';

我使用public_html文件夹中的文件获得结果,但是当我使用panel子文件夹中的文件执行此操作时,PHP无法找到我的类(模板也是如此)。 我想知道,处理这个问题的最佳方法是什么?

P.S我正在localhost/

工作

同样在header.php中:

<html>
    <head>
        <link rel="stylesheet" href="css/basic.css" type="text/css" />
        <title><?php echo $title ?></title>
    </head>

public_html文件夹中调用它时,一切正常,从panel子文件夹调用时,没有CSS ......

1 个答案:

答案 0 :(得分:1)

您可以使用__DIR____DIR__常量计算到包含使用它的文件的目录(它不包括尾部斜杠)。

<?php

// resources/bootstrap.php

# /some/project/dir/resources
echo __DIR__;

使用dirname(__DIR__)升级一级。

此外,注意__DIR__在PHP≥5.3.0中可用,在旧版本中,您必须使用dirname(__FILE__)